#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100000
struct pair
{
int v;
int p;
};
int cmp(const void* x, const void* y)
{
return (((struct pair*) y)->v - ((struct pair*) x)->v);
}
int main(void)
{
int n, z, i;
int a, d;
struct pair l[MAX_SIZE];
scanf("%d%d", &n, &z);
for (i = 0; i < n; ++i)
{
scanf("%d%d", &d, &a);
l[i].v = a - d;
l[i].p = i + 1;
}
qsort(l, n, sizeof(l[0]), cmp);
for (i = 0; (i < n) && (z > 0); ++i)
{
z += l[i].v;
}
if ((z > 0) || ((z == 0) && (i == n)))
{
printf("TAK\n");
printf("%d", l[0].p);
for (i = 1; i < n; ++i)
{
printf(" %d", l[i].p);
}
printf("\n");
}
else
{
printf("NIE\n");
}
return 0;
}
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100000 struct pair { int v; int p; }; int cmp(const void* x, const void* y) { return (((struct pair*) y)->v - ((struct pair*) x)->v); } int main(void) { int n, z, i; int a, d; struct pair l[MAX_SIZE]; scanf("%d%d", &n, &z); for (i = 0; i < n; ++i) { scanf("%d%d", &d, &a); l[i].v = a - d; l[i].p = i + 1; } qsort(l, n, sizeof(l[0]), cmp); for (i = 0; (i < n) && (z > 0); ++i) { z += l[i].v; } if ((z > 0) || ((z == 0) && (i == n))) { printf("TAK\n"); printf("%d", l[0].p); for (i = 1; i < n; ++i) { printf(" %d", l[i].p); } printf("\n"); } else { printf("NIE\n"); } return 0; } |
English