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