#include <iostream>
#include <algorithm>
using namespace std;
long long a[100000];
long long d[100000];
int w[100000];
pair<long long,int> A[4000000];
pair<long long,int> B[4000000];
int main(){
int As = 0;
int Bs = 0;
long long n,z;
cin>>n>>z;
for(int i = 0; i < n;i++)
cin>>d[i]>>a[i];
for(int i =0;i<n;i++)
if(d[i]<=a[i]){
A[As].first = d[i];
A[As].second = i;
As++;
}else{
B[Bs].first = -a[i];
B[Bs].second = i;
Bs++;
}
sort(A,A+As);
sort(B,B+Bs);
int j =0;
bool ok = true;
for(int i =0;i<As;i++){
z-=d[A[i].second];
if(z<=0){ok = false;break;}
z+=a[A[i].second];
w[j]=A[i].second;
j++;
}
for(int i =0;i<Bs;i++){
z-=d[B[i].second];
if(z<=0){ok = false;break;}
z+=a[B[i].second];
w[j]=B[i].second;
j++;
}
if(ok){
cout<<"TAK\n";
for(int i =0;i<n;i++)
cout<<w[i]+1<<" ";
}else{
cout<<"NIE\n";
}
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 | #include <iostream> #include <algorithm> using namespace std; long long a[100000]; long long d[100000]; int w[100000]; pair<long long,int> A[4000000]; pair<long long,int> B[4000000]; int main(){ int As = 0; int Bs = 0; long long n,z; cin>>n>>z; for(int i = 0; i < n;i++) cin>>d[i]>>a[i]; for(int i =0;i<n;i++) if(d[i]<=a[i]){ A[As].first = d[i]; A[As].second = i; As++; }else{ B[Bs].first = -a[i]; B[Bs].second = i; Bs++; } sort(A,A+As); sort(B,B+Bs); int j =0; bool ok = true; for(int i =0;i<As;i++){ z-=d[A[i].second]; if(z<=0){ok = false;break;} z+=a[A[i].second]; w[j]=A[i].second; j++; } for(int i =0;i<Bs;i++){ z-=d[B[i].second]; if(z<=0){ok = false;break;} z+=a[B[i].second]; w[j]=B[i].second; j++; } if(ok){ cout<<"TAK\n"; for(int i =0;i<n;i++) cout<<w[i]+1<<" "; }else{ cout<<"NIE\n"; } return 0; } |
English