#define first F #define second S #include<iostream> #include<cstdlib> #include<algorithm> #include<cstdio> using namespace std; bool f (pair <int, int> a, pair <int, int> b) { return a.S>b.S; } int main () { int n, z, a, b; bool zycie=true; scanf("%d%d", &n, &z); pair <int, int> tab[n]; for (int i=0; i<n; i++) { scanf("%d%d", &a, &b); tab[i].F=i+1; tab[i].S=b-a; } sort(tab, tab+n, f); for (int i=0; i<n && zycie; i++) { z+=tab[i].S; if (z<=0) zycie=false; } if (zycie==true) { printf("TAK\n"); for (int i=0; i<n; i++) printf("%d ", tab[i].F); } 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 | #define first F #define second S #include<iostream> #include<cstdlib> #include<algorithm> #include<cstdio> using namespace std; bool f (pair <int, int> a, pair <int, int> b) { return a.S>b.S; } int main () { int n, z, a, b; bool zycie=true; scanf("%d%d", &n, &z); pair <int, int> tab[n]; for (int i=0; i<n; i++) { scanf("%d%d", &a, &b); tab[i].F=i+1; tab[i].S=b-a; } sort(tab, tab+n, f); for (int i=0; i<n && zycie; i++) { z+=tab[i].S; if (z<=0) zycie=false; } if (zycie==true) { printf("TAK\n"); for (int i=0; i<n; i++) printf("%d ", tab[i].F); } else printf("NIE\n"); return 0; } |