CSES - Harjoituskisa 14.1.2018 - Results
Submission details
Task:Pizzeriat
Sender:Ilmari2000
Submission time:2018-01-14 20:05:31 +0200
Language:C++
Status:READY
Result:11
Feedback
groupverdictscore
#1ACCEPTED11
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4--2details
#5--2details
#6--2details
#7--3details
#8--3details
#9--3details

Code

#include <cmath>
#include <climits>
#include <iostream>
#include <queue>
#include <utility>
#include <vector>

using namespace std;

int main()
{
	int n, k;
	cin >> n >> k;

	vector<int> prices;
	prices.resize(n);

	priority_queue<pair<int, int>> mp;

	for(int i = 0; i < n; i++)
	{
		cin >> prices[i];
		mp.push({prices[i], i});
	}

	for(int i = 0; i < k; i++)
	{
		int t;
		cin >> t;

		if(t == 1)
		{
			int a, b;
			cin >> a >> b;
			a--;

			prices[a] = b;
			mp.push({b, a});

			while(prices[mp.top().second] != mp.top().first) mp.pop();
		}

		if(t == 2)
		{
			int a;
			cin >> a;
			a--;
			
			int ret = INT_MAX;
			for(int j = max(0, a - mp.top().first); j <= min(n - 1, a + mp.top().first); j++)
			{
				int c = abs(j - a) + prices[j];
				if(c < ret)
					ret = c;
			}

			cout << ret << endl;
		}
	}
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1000 1000
720 271 760 576 363 23 368 995...

correct output
43
12
40
22
18
...

user output
43
12
40
22
18
...

Test 2

Group: 1

Verdict: ACCEPTED

input
1000 1000
720 18 984 261 344 257 686 441...

correct output
10
20
27
37
73
...

user output
10
20
27
37
73
...

Test 3

Group: 1

Verdict: ACCEPTED

input
1000 1000
120 764 890 848 949 59 894 916...

correct output
24
25
13
16
19
...

user output
24
25
13
16
19
...

Test 4

Group: 2

Verdict:

input
100000 100000
11763 43585 3126 3787 79765 64...

correct output
284
143
346
203
157
...

user output
(empty)

Test 5

Group: 2

Verdict:

input
100000 100000
76947 78386 71190 65478 90345 ...

correct output
459
297
128
234
204
...

user output
(empty)

Test 6

Group: 2

Verdict:

input
100000 100000
39277 33504 98385 58115 28655 ...

correct output
234
221
156
455
78
...

user output
(empty)

Test 7

Group: 3

Verdict:

input
100000 100000
46508 6952 22836 54480 91235 2...

correct output
427
409
352
39
388
...

user output
(empty)

Test 8

Group: 3

Verdict:

input
100000 100000
15918 8771 36223 76330 39229 7...

correct output
316
387
435
330
446
...

user output
(empty)

Test 9

Group: 3

Verdict:

input
100000 100000
87734 39225 78667 43704 17207 ...

correct output
228
83
176
428
273
...

user output
(empty)