#include<iostream> #include<algorithm> #include<vector> #include<cstdlib> using namespace std; struct x{ int obr,eli,wsp,id;}; int main() { int n,z,temp1,temp2,l = 0,ile,u = 0 ; cin>>n>>z; bool war = false; bool war2; char d[7]={0}; x zm; string wynik = ""; vector <x> tab; vector <int> wektor; ile = n; for(int i= 0;i<n;i++) { cin>>temp1>>temp2; zm.obr = temp1;zm.eli = temp2; zm.wsp = zm.eli-zm.obr; zm.id = u+1;u++; tab.push_back(zm); } for(int q=0;q<n;q++) { for(int w= 0;w<n-1;w++) { if(tab[w].wsp<tab[w+1].wsp) swap(tab[w],tab[w+1]); } } // for(int i = 0;i<n;i++) //{ // cout<<tab[i].wsp<<' '<<tab[i].id<<' '; //} while(tab[l].wsp>=0 &&war == false) { z-=tab[l].obr; ile = tab[l].id; if(z<=0) { war == true; } else { z+=tab[l].eli; wektor.push_back(ile); } l++; } if(war == false) { int g = n-1; while(g>=l && war != true) { z-=tab[g].obr; ile = tab[g].id; if(z<=0) { war == true; } else { z+=tab[g].eli; wektor.push_back(ile); //cout<<"z="<<z<<' '<<"obr[g-1]"<<tab[g-1].obr<<endl; } g = g-1; } } if(wektor.size()==n) { cout<<"TAK"<<endl; for(int i = 0;i<wektor.size();i++) { cout<<wektor[i]<<' '; } } else cout<<"NIE"; }
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #include<iostream> #include<algorithm> #include<vector> #include<cstdlib> using namespace std; struct x{ int obr,eli,wsp,id;}; int main() { int n,z,temp1,temp2,l = 0,ile,u = 0 ; cin>>n>>z; bool war = false; bool war2; char d[7]={0}; x zm; string wynik = ""; vector <x> tab; vector <int> wektor; ile = n; for(int i= 0;i<n;i++) { cin>>temp1>>temp2; zm.obr = temp1;zm.eli = temp2; zm.wsp = zm.eli-zm.obr; zm.id = u+1;u++; tab.push_back(zm); } for(int q=0;q<n;q++) { for(int w= 0;w<n-1;w++) { if(tab[w].wsp<tab[w+1].wsp) swap(tab[w],tab[w+1]); } } // for(int i = 0;i<n;i++) //{ // cout<<tab[i].wsp<<' '<<tab[i].id<<' '; //} while(tab[l].wsp>=0 &&war == false) { z-=tab[l].obr; ile = tab[l].id; if(z<=0) { war == true; } else { z+=tab[l].eli; wektor.push_back(ile); } l++; } if(war == false) { int g = n-1; while(g>=l && war != true) { z-=tab[g].obr; ile = tab[g].id; if(z<=0) { war == true; } else { z+=tab[g].eli; wektor.push_back(ile); //cout<<"z="<<z<<' '<<"obr[g-1]"<<tab[g-1].obr<<endl; } g = g-1; } } if(wektor.size()==n) { cout<<"TAK"<<endl; for(int i = 0;i<wektor.size();i++) { cout<<wektor[i]<<' '; } } else cout<<"NIE"; } |