Pagini recente » Cod sursa (job #19475) | Cod sursa (job #857229) | Cod sursa (job #1703427) | Cod sursa (job #2928027) | Cod sursa (job #1709604)
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int t, n, m, k;
int v[3005];
int rem[100];
char taken[3005];
int last_i;
int find_decr (int val) {
//printf("%d\n", val);
int max_val = -1, max_index;
for (int i = 1; i <= k; ++i) {
if ((rem[i] >= val) && rem[i] > max_val) {
max_val = rem[i];
max_index = i;
}
}
if (max_val == -1) {
return -1;
} else {
rem[max_index] -= val;
return 0;
}
}
int main (void) {
freopen("sate2.in", "r", stdin);
freopen("sate2.out", "w", stdout);
scanf("%d", &t);
while (t) {
scanf ("%d %d %d", &n, &m, &k);
memset(taken, 0, sizeof(taken));
for (int i = 1; i <= n; ++i) {
scanf("%d", &v[i]);
}
if (!(m % k)) {
sort(v + 1, v + n + 1);
int S = m / k;
for (int i = 1; i <= k; ++i)
rem[i] = S;
int ok = 1;
for (int i = n; i >= 1; --i) {
if (find_decr(v[i]) == -1) {
ok = 0;
break;
}
}
if (ok == 1) {
printf("DA\n");
} else {
printf("NU\n");
}
} else {
printf("NU\n");
}
--t;
}
}