#include <stdio.h>
#include <stdlib.h>
int d[100000],a[100000],k[100000],l[100000];
int c(const void *a, const void *b)
{
return k[*(int*)a]-k[*(int*)b];
}
int main()
{
int n,z,i;
scanf("%d%d",&n,&z);
for (i=0;i<n;i++)
{
scanf("%d%d",&d[i],&a[i]);
l[i]=i;
k[i]=d[i]<a[i]?d[i]:1000000-a[i];
}
qsort(l,n,sizeof(*l),c);
for (i=0;i<n;i++)
{
z-=d[l[i]];
if (z<=0)
{
puts("NIE");
exit(0);
}
z+=a[l[i]];
}
puts("TAK");
for (i=0;i<n;i++) printf("%d%c",l[i]+1,i+1<n?' ':'\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 | #include <stdio.h> #include <stdlib.h> int d[100000],a[100000],k[100000],l[100000]; int c(const void *a, const void *b) { return k[*(int*)a]-k[*(int*)b]; } int main() { int n,z,i; scanf("%d%d",&n,&z); for (i=0;i<n;i++) { scanf("%d%d",&d[i],&a[i]); l[i]=i; k[i]=d[i]<a[i]?d[i]:1000000-a[i]; } qsort(l,n,sizeof(*l),c); for (i=0;i<n;i++) { z-=d[l[i]]; if (z<=0) { puts("NIE"); exit(0); } z+=a[l[i]]; } puts("TAK"); for (i=0;i<n;i++) printf("%d%c",l[i]+1,i+1<n?' ':'\n'); return 0; } |
English