Submission details
Task:Lisäykset
Sender:hltk
Submission time:2025-11-29 15:21:31 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.01 s1, 2, 3details
#3ACCEPTED0.01 s1, 3details
#4ACCEPTED0.01 s1, 3details
#50.01 s1, 3details
#6--2, 3details
#7--3details
#8--3details
#9--3details
#10--3details
#11--3details

Code

#include <iostream>
#include <vector>

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int n, m;
	cin >> n >> m;

	vector<int> v(n);
	for (int i = 0; i < n; ++i) {
		cin >> v[i];
	}

	vector<int> t(n);
	for (int i = 0; i < m; ++i) {
		int x;
		cin >> x;
		t[x - 1]++;
	}

	for (int i = n - 1; i > 0; --i) {
		t[i - 1] += t[i];
	}

	auto f = [&](int l, int r, int x) {
		long b = 0;
		for (int i = l; i < r; ++i) {
			b += x - v[i] - t[i];
		}
		return b <= 0;
	};

	for (int i = 0, j = 0; i < n; i = j) {
		j = i + 1;
		while (j < n && f(i, j, v[j])) {
			for (int k = i; k < j; ++k) {
				t[k] -= v[j] - v[k];
				v[k] = v[j];
			}
			++j;
		}

		long s = 0;
		for (int k = i; k < j; ++k) {
			s += t[k];
			t[k] = 0;
		}
		for (int k = i; k < j; ++k) {
			v[k] += s / (j - i);
		}
		s %= j - i;
		for (int k = j - 1; s && k >= i; --k) {
			v[k] += 1;
			s--;
		}
	}

	for (int i = 0; i < n; ++i) {
		cout << v[i] << " ";
	}
	cout << endl;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 1000
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1000 

user output
1000 

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
511 511 511 511 511 511 511 51...

user output
511 511 511 511 511 511 511 51...

Test 3

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
495 495 495 495 495 495 495 49...

user output
495 495 495 495 495 495 495 49...

Test 4

Group: 1, 3

Verdict: ACCEPTED

input
1000 1000
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 ...

correct output
562 562 562 562 562 562 562 56...

user output
562 562 562 562 562 562 562 56...

Test 5

Group: 1, 3

Verdict:

input
1000 1000
0 1 3 4 6 9 9 9 10 11 11 11 11...

correct output
997 997 997 997 997 998 998 99...

user output
1004 1004 1004 1004 1004 1004 ...

Feedback: Incorrect character on line 1 col 1: expected "997", got "1004"

Test 6

Group: 2, 3

Verdict:

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50033 50033 50033 50033 50033 ...

user output
(empty)

Test 7

Group: 3

Verdict:

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
49996 49996 49996 49996 49996 ...

user output
(empty)

Test 8

Group: 3

Verdict:

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50057 50057 50057 50057 50057 ...

user output
(empty)

Test 9

Group: 3

Verdict:

input
100000 100000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
50536 50536 50536 50536 50536 ...

user output
(empty)

Test 10

Group: 3

Verdict:

input
100000 100000
0 4 7 29 33 44 52 75 77 79 82 ...

correct output
100000 100001 100003 100023 10...

user output
(empty)

Test 11

Group: 3

Verdict:

input
100000 100000
1 12 14 16 49 59 59 63 68 73 8...

correct output
100001 100010 100012 100014 10...

user output
(empty)