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
#include<iostream>
int main(){using namespace std;ios_base::sync_with_stdio(0);
int plus[100000];
int minus[100000];
char daje[100000];
int kolejnosc[100000];
int zycie;
int n;
int z;
cin >> n;
cin >> z;
int pp=0;
int pm=0;
int nieee;
zycie=z;
for(int i=0;i<n;i++){cin>>minus[i]>>plus[i];zycie=zycie-minus[i]+plus[i];if(plus[i]-minus[i]>0){daje[i]=1;pp=pp+1;}else{if(pm==0){nieee=i;}daje[i]=0;pm=pm+1;if(plus[i]<plus[nieee]){nieee=i;}}}
if(zycie<=0){cout<<"NIE";return 0;}
zycie=z;
int p=n;
int walka;
int a=0;
while(pp>0){
	walka=-2;
	for(int i=0;i<n;i++){if(minus[i]<zycie&&daje[i]==1){walka=i;break;}}
	if(walka==-2){cout<<"NIE"<<pp;return 0;}
	daje[walka]=2;
	zycie=zycie-minus[walka]+plus[walka];
	pp=pp-1;
	kolejnosc[a]=walka;
	a=a+1;
	}
for(int i=0;i<n;i++){if(daje[i]==0){zycie=zycie-minus[i]+plus[i];kolejnosc[a]=i;a=a+1;}}
if(pm>0){zycie=zycie-plus[nieee];}
if(zycie>0){cout<<"TAK\n";for(int i=0;i<n;i++){if(kolejnosc[i]!=nieee){cout<<kolejnosc[i]+1<<" ";}}cout<<nieee+1;}
else{cout<<"NIE";}
}