#include <cstdio>
#include <algorithm>
using namespace std;
int D[100005];
int A[100005];
int B[100005];
int S[100005];
bool sort_funca( int i, int j )
{
return D[i]<D[j];
}
bool sort_funcb( int i, int j )
{
return A[i]>A[j];
}
int main()
{
int n,z;
scanf("%d%d",&n,&z);
long long s=z;
int ils=0,ilsb;
for ( int i=0; i<n; i++ )
{
scanf("%d%d",D+i,A+i);
B[i]=A[i]-D[i];
if ( B[i]>=0 )
S[ils++]=i;
s+=B[i];
//printf("%d %d\n",D[i],B[i]);
}
//printf("\n");
//printf("%lld\n",s);
if ( s<=0 ) goto _fail;
sort( S, S+ils, sort_funca );
s=z;
for ( int ii=0; ii<ils; ii++ )
{
int i = S[ii];
if ( s<=D[i] ) goto _fail;
s+=B[i];
}
ilsb=ils;
for ( int i=0; i<n; i++ )
{
if ( B[i] < 0 )
S[ilsb++]=i;
}
sort( S+ils, S+n, sort_funcb );
for ( int ii=ils; ii<n; ii++ )
{
int i = S[ii];
//printf("aaaaa %lld %d\n",s,D[i]);
if ( s<=D[i] ) goto _fail;
s+=B[i];
}
printf("TAK\n");
for ( int i=0; i<n; i++ ) printf("%d ",S[i]+1); printf("\n");
return 0;
_fail:;
printf("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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #include <cstdio> #include <algorithm> using namespace std; int D[100005]; int A[100005]; int B[100005]; int S[100005]; bool sort_funca( int i, int j ) { return D[i]<D[j]; } bool sort_funcb( int i, int j ) { return A[i]>A[j]; } int main() { int n,z; scanf("%d%d",&n,&z); long long s=z; int ils=0,ilsb; for ( int i=0; i<n; i++ ) { scanf("%d%d",D+i,A+i); B[i]=A[i]-D[i]; if ( B[i]>=0 ) S[ils++]=i; s+=B[i]; //printf("%d %d\n",D[i],B[i]); } //printf("\n"); //printf("%lld\n",s); if ( s<=0 ) goto _fail; sort( S, S+ils, sort_funca ); s=z; for ( int ii=0; ii<ils; ii++ ) { int i = S[ii]; if ( s<=D[i] ) goto _fail; s+=B[i]; } ilsb=ils; for ( int i=0; i<n; i++ ) { if ( B[i] < 0 ) S[ilsb++]=i; } sort( S+ils, S+n, sort_funcb ); for ( int ii=ils; ii<n; ii++ ) { int i = S[ii]; //printf("aaaaa %lld %d\n",s,D[i]); if ( s<=D[i] ) goto _fail; s+=B[i]; } printf("TAK\n"); for ( int i=0; i<n; i++ ) printf("%d ",S[i]+1); printf("\n"); return 0; _fail:; printf("NIE\n"); return 0; } |
English