#include <iostream> using namespace std; int main() { long int n, z, d, a, licz; long int da[100001][4]; long int temp[1][4]; cin >> n >> z; long int suma=0; long int maxDD=0; for (long int i=0;i<n;i++){ cin >> d >> a; da[i][0]=d; da[i][1]=a; da[i][2]=da[i][1]-da[i][0]; da[i][3]=i+1; if(da[i][2]<maxDD){ maxDD=da[i][2]; } suma=suma+da[i][2]; } if(suma>=maxDD){ cout << "TAK" << '\n'; }else{ cout << "NIE" << '\n'; return 0; } licz = 0; while (licz<n){ if(da[licz][2]>=0){ if(da[licz][0]<=z){ cout << da[licz][3] << ' '; for (long int j=licz;j<n;j++){ da[licz][0]=da[licz+1][0]; da[licz][1]=da[licz+1][1]; da[licz][2]=da[licz+1][2]; da[licz][3]=da[licz+1][3]; } n=n-1; licz++; z=z-da[licz][0]+da[licz][1]; continue; } else { temp[licz][0]=da[licz][0]; temp[licz][1]=da[licz][1]; temp[licz][2]=da[licz][2]; temp[licz][3]=da[licz][3]; da[licz][0]=da[n-1][0]; da[licz][1]=da[n-1][1]; da[licz][2]=da[n-1][2]; da[licz][3]=da[n-1][3]; da[n-1][0]=temp[licz][0]; da[n-1][1]=temp[licz][1]; da[n-1][2]=temp[licz][2]; da[n-1][3]=temp[licz][3]; continue; } } else { licz++; } } licz = 0; long int maks=0; long int nr_maks=-1; while (licz<n){ for(long int m=0;m<n;m++){ if(da[m][0]>maks){ maks=da[m][0]; nr_maks=m; } } cout << da[nr_maks][3] << ' '; da[nr_maks][0]=0; maks=0; nr_maks=-1; licz++; } 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 76 77 78 79 80 81 82 | #include <iostream> using namespace std; int main() { long int n, z, d, a, licz; long int da[100001][4]; long int temp[1][4]; cin >> n >> z; long int suma=0; long int maxDD=0; for (long int i=0;i<n;i++){ cin >> d >> a; da[i][0]=d; da[i][1]=a; da[i][2]=da[i][1]-da[i][0]; da[i][3]=i+1; if(da[i][2]<maxDD){ maxDD=da[i][2]; } suma=suma+da[i][2]; } if(suma>=maxDD){ cout << "TAK" << '\n'; }else{ cout << "NIE" << '\n'; return 0; } licz = 0; while (licz<n){ if(da[licz][2]>=0){ if(da[licz][0]<=z){ cout << da[licz][3] << ' '; for (long int j=licz;j<n;j++){ da[licz][0]=da[licz+1][0]; da[licz][1]=da[licz+1][1]; da[licz][2]=da[licz+1][2]; da[licz][3]=da[licz+1][3]; } n=n-1; licz++; z=z-da[licz][0]+da[licz][1]; continue; } else { temp[licz][0]=da[licz][0]; temp[licz][1]=da[licz][1]; temp[licz][2]=da[licz][2]; temp[licz][3]=da[licz][3]; da[licz][0]=da[n-1][0]; da[licz][1]=da[n-1][1]; da[licz][2]=da[n-1][2]; da[licz][3]=da[n-1][3]; da[n-1][0]=temp[licz][0]; da[n-1][1]=temp[licz][1]; da[n-1][2]=temp[licz][2]; da[n-1][3]=temp[licz][3]; continue; } } else { licz++; } } licz = 0; long int maks=0; long int nr_maks=-1; while (licz<n){ for(long int m=0;m<n;m++){ if(da[m][0]>maks){ maks=da[m][0]; nr_maks=m; } } cout << da[nr_maks][3] << ' '; da[nr_maks][0]=0; maks=0; nr_maks=-1; licz++; } return 0; } |