Skip to content

Commit febabbe

Browse files
Add files via upload
1 parent 7135413 commit febabbe

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
void solve()
7+
{
8+
long long no_of_wheels;
9+
cin >> no_of_wheels;
10+
11+
long long minimum, maximum;
12+
switch(no_of_wheels%4)
13+
{
14+
case 0: maximum = no_of_wheels/4;
15+
minimum = 2*(no_of_wheels/12) + (no_of_wheels%12 == 6 ? (no_of_wheels%12)/6 : (no_of_wheels%12)/4);
16+
break;
17+
18+
case 2: if(no_of_wheels == 2)
19+
{
20+
cout << "-1\n";
21+
return;
22+
}
23+
maximum = 1 + (no_of_wheels - 6)/4;
24+
no_of_wheels -= 6;
25+
minimum = 1 + 2*(no_of_wheels/12) + (no_of_wheels%12 == 6 ? (no_of_wheels%12)/6 : (no_of_wheels%12)/4);
26+
break;
27+
28+
default: cout << "-1\n";
29+
return;
30+
}
31+
32+
cout << minimum << " " << maximum << "\n";
33+
}
34+
35+
int main()
36+
{
37+
int no_of_test_cases;
38+
cin >> no_of_test_cases;
39+
40+
while(no_of_test_cases--)
41+
solve();
42+
43+
return 0;
44+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
int main()
7+
{
8+
int no_of_elements, no_of_queries;
9+
cin >> no_of_elements >> no_of_queries;
10+
11+
vector <int> A(no_of_elements + 1);
12+
for(int i = 1; i <= no_of_elements; i++)
13+
{
14+
cin >> A[i];
15+
}
16+
17+
long long sum = 0;
18+
for(int i = 1; i <= no_of_elements; i++)
19+
{
20+
sum += A[i];
21+
}
22+
23+
int last_replace_all_time = -1, last_replace_all_value = 0;
24+
vector <int> last_touched(no_of_elements + 1, 0);
25+
for(int i = 1; i <= no_of_queries; i++)
26+
{
27+
const int REPLACE_ONE = 1, REPLACE_ALL = 2;
28+
int query, index, value;
29+
cin >> query;
30+
31+
switch(query)
32+
{
33+
case REPLACE_ONE: cin >> index >> value;
34+
if(last_touched[index] > last_replace_all_time)
35+
{
36+
sum += (value - A[index]);
37+
}
38+
else
39+
{
40+
sum += (value - last_replace_all_value);
41+
}
42+
43+
A[index] = value;
44+
last_touched[index] = i;
45+
break;
46+
47+
case REPLACE_ALL: cin >> value;
48+
49+
sum = no_of_elements*1LL*value;
50+
51+
last_replace_all_value = value;
52+
last_replace_all_time = i;
53+
}
54+
55+
cout << sum << "\n";
56+
}
57+
58+
return 0;
59+
}

0 commit comments

Comments
 (0)