201282026-01-02 12:08:14PappMatyasÓvodacpp17Hibás válasz 24/50500ms2288 KiB
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

vector<int> maxm;
vector<int> Tot;
vector<int> wants;
vector<int> losses;
vector<bool> req;

int main()
{
	int loss = 0, am = 0;
	int n, k;
	cin >> n >> k;
	for (int i = 0; i < k; i++)
	{
		int l;
		cin >> l;
		maxm.push_back(l);
		Tot.push_back(0);
	}
	for (int i = 0; i < n; i++)
	{
		int a;
		cin >> a;
		a--;
		req.push_back(false);
		wants.push_back(a);
	}
	for (int i = 0; i < n; i++)
	{
		int b;
		cin >> b;
		losses.push_back(b);
	}
	for (int i = 0; i < n; i++)
	{
		int index = wants[i]; // 0 - (k - 1)
		if (Tot[index] == maxm[index])
		{
			int min = 10001;
			int s = -1;
			for (int j = 0; j <= i; j++)
			{
				int jndex = wants[j];
				if (jndex == index && !req[j])
				{
					if (losses[j] < min)
					{
						s = j;
						min = losses[j];
					}
				}
			}
			req[s] = true;
			am++;
			loss += min;
		}
		else
		{
			Tot[index]++;
		}
	}
	int zcount = 0;
	for (int l = 0; l < k; l++)
	{
		if (Tot[l] == 0)
		{
			zcount++;
		}
	}
	for (int i = 0; i < zcount - am; i++)
	{
		int min = 10001;
		int s = -1;
		for (int j = 0; j <= i; j++)
		{
			if (!req[j])
			{
				if (losses[j] < min)
				{
					s = j;
					min = losses[j];
				}
			}
		}
		req[s] = true;
		loss += min;
	}
	cout << loss << endl;
	for (int i = 0; i < n; i++)
	{
		if (!req[i])
		{
			cout << wants[i] + 1 << " ";
		}
		else
		{
			bool z = false;
			for (int l = 0; l < k; l++)
			{
				if (Tot[l] == 0)
				{
					cout << l + 1 << " ";
					Tot[l]++;
					z = true;
					break;
				}
			}
			if (!z)
			{
				for (int l = 0; l < k; l++)
				{
					if (Tot[l] < maxm[l])
					{
						cout << l + 1 << " ";
						Tot[l]++;
						break;
					}
				}
			}
		}
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base24/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms512 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms368 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms376 KiB
11Elfogadva2/21ms544 KiB
12Elfogadva2/21ms316 KiB
13Futási hiba0/22ms316 KiB
14Elfogadva3/32ms316 KiB
15Futási hiba0/327ms748 KiB
16Futási hiba0/3188ms984 KiB
17Elfogadva3/332ms940 KiB
18Időlimit túllépés0/3469ms1796 KiB
19Időlimit túllépés0/3437ms1616 KiB
20Időlimit túllépés0/3500ms1448 KiB
21Időlimit túllépés0/3474ms1672 KiB
22Időlimit túllépés0/4486ms2288 KiB