#include<iostream> #include<vector> #include<algorithm> using namespace std; int a,hp, g,h; struct monster{ int a; int b; int n; monster( int c, int d, int x){ a=c; b=d; n=x; } }; bool magic(monster a, monster b){ return a.a>b.a; } vector<monster> tab1; vector<monster> tab2; int main(){ cin>>a>>hp; for(int i=0; i<a; i++){ cin>>g>>h; if(h-g>0)tab1.push_back(monster(g,h,i+1)); else tab2.push_back(monster(g,h,i+1)); } sort(tab1.begin(), tab1.end(), magic); sort(tab2.begin(), tab2.end(), magic); for(int i=0; i<tab1.size(); i++){ hp-=tab1[i].a; if(a<=0) goto tu; else hp+=tab1[i].b; } for(int i=0; i<tab2.size(); i++){ hp-=tab2[i].a; if(a<=0) goto tu; else hp+=tab2[i].b; } cout<<"TAK"<<endl; for(int i=0; i<tab1.size(); i++){ cout<<tab1[i].n<<" "; } for(int i=0; i<tab2.size(); i++){ cout<<tab2[i].n<<" "; } goto tam; tu: cout<<"NIE"; tam: 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 | #include<iostream> #include<vector> #include<algorithm> using namespace std; int a,hp, g,h; struct monster{ int a; int b; int n; monster( int c, int d, int x){ a=c; b=d; n=x; } }; bool magic(monster a, monster b){ return a.a>b.a; } vector<monster> tab1; vector<monster> tab2; int main(){ cin>>a>>hp; for(int i=0; i<a; i++){ cin>>g>>h; if(h-g>0)tab1.push_back(monster(g,h,i+1)); else tab2.push_back(monster(g,h,i+1)); } sort(tab1.begin(), tab1.end(), magic); sort(tab2.begin(), tab2.end(), magic); for(int i=0; i<tab1.size(); i++){ hp-=tab1[i].a; if(a<=0) goto tu; else hp+=tab1[i].b; } for(int i=0; i<tab2.size(); i++){ hp-=tab2[i].a; if(a<=0) goto tu; else hp+=tab2[i].b; } cout<<"TAK"<<endl; for(int i=0; i<tab1.size(); i++){ cout<<tab1[i].n<<" "; } for(int i=0; i<tab2.size(); i++){ cout<<tab2[i].n<<" "; } goto tam; tu: cout<<"NIE"; tam: return 0; } |