summaryrefslogtreecommitdiffstats
path: root/inf/zotks/2.c
blob: 6f71e5bfdbe05f2650f50de89c21d31a3f59d516 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <signal.h>
#define N unsigned long long int
N s (N n) {
	return (n*(n+1))/2;
}
int main (void) {
	char buf[256];
	fgets(buf, 256, stdin);
	while (1) {
		fgets(buf, 256, stdin);
		if (ferror(stdin) || feof(stdin))
			break;
		char * c;
		N n = strtoull(buf, &c, 10); // imamo n števil
		N m = strtoull(++c, &c, 10); // vsota vseh teh n števil je m
		N k = strtoull(++c, NULL, 10); // teh n števil razdelimo v k skupin
		if (k > n) { // ni možno imeti več skupin kot elementov
			fprintf(stdout, "NE\n");
			continue;
		}
		N smallest_max_in_group = n / k;
		// fprintf(stderr, "smallest_max_in_group: %llu, s(smig+1)\n", smallest_max_in_group);
		if ((n % k)*s(smallest_max_in_group+1) + (k-(n % k))*s(smallest_max_in_group) > m)
			fprintf(stdout, "NE\n");
		else
			fprintf(stdout, "DA\n");
	}
	return 0;
}