Pagini recente » Cod sursa (job #308951) | Cod sursa (job #2404520) | Cod sursa (job #3282716) | Cod sursa (job #1369407) | Cod sursa (job #1709499)
#include <stdio.h>
#include <stdlib.h>
int cmp ( const void* p1, const void* p2 )
{
return *((int*)p1) - *((int*)p2);
}
int main()
{
freopen("sate2.in", "r", stdin);
freopen("sate2.out", "w", stdout);
int t, n, m, k, i, j, *sat, sum, result;
scanf("%i", &t);
while ( t )
{
scanf("%i", &n);
scanf("%i", &m);
scanf("%i", &k);
if ( m % k == 0 )
{
result = m / k;
sat = (int*)malloc(n*sizeof(int));
for ( i=0; i<n; ++i )
{
scanf("%i", &sat[i]);
}
qsort(sat, n, sizeof(int), cmp);
for ( j=0; j<k; ++j )
{
sum = 0;
for ( i=n-1; i>=0 && sum<result; --i )
{
if ( sat[i] > 0 && sum + sat[i] <= result )
{
sum += sat[i];
sat[i] = -1;
}
}
if ( sum != result )
{
printf("NU");
fflush(stdout);
break;
}
}
if ( sum == result )
{
printf( "DA");
fflush(stdout);
}
free(sat);
}
else
{
printf( "NU");
fflush(stdout);
}
--t;
if ( t >= 1)
{
printf("\n");
}
}
return 0;
}