244082026-02-11 09:41:15SzeredaiNatanaelÓvodacpp17Forditási hiba
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int k, n; cin >> k >> n;
	vector<pair<int, bool>> maxi(n + 1, { 0, false });
	for (int i = 1; i <= n; ++i) {
		cin >> maxi[i].first;
	}
	vector<int> szerep(k + 1);
	vector<int> ans(k + 1, 0);
	for (int i = 1; i <= k; ++i) {
		cin >> szerep[i];
	}
	vector<pair<int, int>> siras(k + 1);
	for (int i = 1; i <= k; ++i) {
		cin >> siras[i].first;
		siras[i].second = i;
	}

	int t = 0;
	sort(siras.begin(), siras.end());
	for (int i = k; i >= 1; --i) {
		int j = szerep[siras[i].second];
		if (maxi[j].first > 0) {
			--maxi[j].first;
			maxi[j].second = true;
			ans[siras[i].second] = j;
		}
		else t += siras[i].first;
	}

	int i = 1;
	for (auto& e : ans) {
		if (e == 0) {
			for (int j = i; j <= n; ++j){
				if (maxi[j].first > 0 && !maxi[j].second) {
					--maxi[j].first;
					maxi[j].second = true;
					e = j;

					if (maxi[j].first == 0) {
						i = j + 1;
					}
					break;
				}
			}
		}
	}

	bool nincs = false, van = true;
	for (auto& e : ans) {
		if (e == 0) {
			nincs = true;
		}
	}
	for (auto& e : maxi) {
		if (!e.second) {
			van = false;
		}
	}

	if (nincs) {
		i = 1;
		for (auto& e : ans) {
			if (e == 0) {
				for (int j = i; j <= n; ++j) {
					if (maxi[j].first > 0) {
						--maxi[j].first;
						e = j;

						if (maxi[j].first == 0) {
							i = j + 1;
						}
						break;
					}
				}
			}
		}
	}

	if (!van) continue;

	cout << t << "\n";
	for (int i = 1; i <= k; ++i) {
		cout << ans[i] << " ";
	}
}
Forditási hiba
open /var/local/lib/isolate/434/box/a.out: no such file or directory
main.cpp: In function 'int main()':
main.cpp:86:19: error: continue statement not within a loop
   86 |         if (!van) continue;
      |                   ^~~~~~~~