#include<iostream> #include <algorithm> using namespace std; #define M 100001 struct Potwor { int d; int a; int nr;}; bool Por(const Potwor& p1, const Potwor& p2) { return p1.d<p2.d; }; bool Por2(const Potwor& p1, const Potwor& p2) { return p1.a>p2.a; }; int main( ) { ios_base::sync_with_stdio(0); int n, a, d; long long z; Potwor P[M]; cin>>n>>z; int i=0, k=1, j=n-1, ans=1; while(i<=j) { cin>>d>>a; if(d<a) { P[i].d=d; P[i].a=a; P[i].nr=k; i++; k++; } else { P[j].d=d; P[j].a=a; P[j].nr=k; j--; k++; } } if(j!=-1) sort(P,P+i, Por); if(j!=n-1) sort(P+j+1,P+n, Por2); for(int ii=0; ii<n; ++ii) { z=z-P[ii].d; if(z<=0) { ans=0; break; } z=z+P[ii].a; } if(ans==0) cout<<"NIE\n"; else { cout<<"TAK\n"; for(int ii=0; ii<n; ++ii) cout<<P[ii].nr<<" "; } 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 56 57 58 59 60 | #include<iostream> #include <algorithm> using namespace std; #define M 100001 struct Potwor { int d; int a; int nr;}; bool Por(const Potwor& p1, const Potwor& p2) { return p1.d<p2.d; }; bool Por2(const Potwor& p1, const Potwor& p2) { return p1.a>p2.a; }; int main( ) { ios_base::sync_with_stdio(0); int n, a, d; long long z; Potwor P[M]; cin>>n>>z; int i=0, k=1, j=n-1, ans=1; while(i<=j) { cin>>d>>a; if(d<a) { P[i].d=d; P[i].a=a; P[i].nr=k; i++; k++; } else { P[j].d=d; P[j].a=a; P[j].nr=k; j--; k++; } } if(j!=-1) sort(P,P+i, Por); if(j!=n-1) sort(P+j+1,P+n, Por2); for(int ii=0; ii<n; ++ii) { z=z-P[ii].d; if(z<=0) { ans=0; break; } z=z+P[ii].a; } if(ans==0) cout<<"NIE\n"; else { cout<<"TAK\n"; for(int ii=0; ii<n; ++ii) cout<<P[ii].nr<<" "; } return 0; } |