Răspuns :
Răspuns:
#include <iostream>
#include <algorithm>
using namespace std;
int N, M, v[2];
int main()
{
cin >> N >> M;
int *a = new int[N];
int *p = new int[M];
for (int i = 0; i < N; i++)
cin >> a[i];
for (int i = 0; i < M; i++)
cin >> p[i];
sort(a, a + N);
int cazane, d, s = 0;
for (int i = 0; i < N; i++)
{
int zile = 0;
s += a[N - 1 - i];
d = s;
while (d >= p[zile] && zile < M) {
d -= p[zile];
zile++;
}
if (i % 2 == 0) {
v[0] = zile;
if (v[0] > v[1]) {
v[0] = v[1]; v[1] = zile;
}
}
if (i % 2 == 1) v[1] = zile;
if (zile <= M) {
for (int j = v[0]; j < v[1]; j++) {
cazane = i + 1;
cout << cazane << " ";
}
v[0] = v[1];
}
if (zile == M) break;
}
cout << endl;
delete[] a, p;
return 0;
}
Explicație:
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.