#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; } |