Submission details
Task:Lisäykset
Sender:pupukani
Submission time:2025-11-29 16:01:37 +0200
Language:C++ (C++17)
Status:READY
Result:53
Feedback
groupverdictscore
#1ACCEPTED20
#2ACCEPTED33
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 3details
#4ACCEPTED0.00 s1, 3details
#5ACCEPTED0.01 s1, 3details
#6ACCEPTED0.06 s2, 3details
#7ACCEPTED0.06 s3details
#8ACCEPTED0.07 s3details
#9ACCEPTED0.07 s3details
#10--3details
#11--3details

Code

#include <iostream>
#include <map>
#include <unordered_map>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>

int main(void)
{
	int n, m;
	std::cin >> n >> m;
	std::cin.ignore();

	std::string alkusis;
	std::getline(std::cin, alkusis);
	std::stringstream ss(alkusis);

	std::map<int, int> luvut;
	int luku;
	while (ss >> luku)
		luvut[luku]++;

	std::string ope;
	std::getline(std::cin, ope);
	std::stringstream sope(ope);

	std::vector<int> kk;
	int asd;
	while (sope >> asd)
		kk.push_back(asd);
	std::sort(kk.begin(), kk.end());

	for (int i = 0; i < m; ++i)
	{
		int k = kk[i];
		int pienin_maara = luvut.begin()->second;
		while (k + kk[i + 1] <= pienin_maara)
			k += kk[++i];

		std::unordered_map<int, int> lis;
		while (k > 0 && !luvut.empty())
		{
			auto it = luvut.begin();
			int luku = it->first;
			int maara = it->second;
//			std::cout << "Luku: " << luku << " | Maara: " << maara << " | k: " << k << std::endl;
			int sub = k >= maara ? maara : k;
			k -= sub;
			it->second -= sub;

			if (it->second == 0)
				luvut.erase(it);

			lis[luku + 1] += sub;
		}
		for (const auto& [luku, maara] : lis)
			luvut[luku] += maara;
	}

	std::string str;
	for (const auto& [luku, maara] : luvut)
	{
		for (int i = 0; i < maara; ++i)
			str += std::to_string(luku) + " ";
	}
	std::cout << str << std::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: ACCEPTED

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
997 997 997 997 997 998 998 99...

Test 6

Group: 2, 3

Verdict: ACCEPTED

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
50033 50033 50033 50033 50033 ...

Test 7

Group: 3

Verdict: ACCEPTED

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
49996 49996 49996 49996 49996 ...

Test 8

Group: 3

Verdict: ACCEPTED

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
50057 50057 50057 50057 50057 ...

Test 9

Group: 3

Verdict: ACCEPTED

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
50536 50536 50536 50536 50536 ...

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)