#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class boh
{
public:
int str;
int hp;
int idx;
};
int sth(boh a, boh b)
{
return(a.str < b.str);
}
int ssth(boh a, boh b)
{
return(a.str > b.str);
}
int main()
{
ios_base::sync_with_stdio(0);
int n, m;
vector <boh> tabd;
vector <boh> tabu;
boh pom;
long long walka;
cin >> n >> m;
for(int i = 0; i < n; i++)
{
pom.idx = i + 1;
cin >> pom.str >> pom.hp;
if(pom.hp - pom.str >= 0)
{
tabd.push_back(pom);
}
else
{
tabu.push_back(pom);
}
}
sort(tabd.begin(), tabd.end(), sth);
sort(tabu.begin(), tabu.end(), ssth);
walka = m;
for(unsigned int i = 0; i < tabd.size(); i++)
{
walka -= tabd[i].str;
if(walka <= 0)
{
cout << "NIE";
return 0;
}
else
{
walka+= tabd[i].hp;
}
}
for(unsigned int i = 0; i < tabu.size(); i++)
{
walka -= tabu[i].str;
if(walka <= 0)
{
cout << "NIE";
return 0;
}
else
{
walka+= tabu[i].hp;
}
}
cout << "TAK" << "\n";
for(unsigned int i = 0; i < tabd.size(); i++)
{
cout << tabd[i].idx << " ";
}
for(unsigned int i = 0; i < tabu.size(); i++)
{
cout << tabu[i].idx << " ";
}
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 83 84 85 86 87 | #include <iostream> #include <algorithm> #include <vector> using namespace std; class boh { public: int str; int hp; int idx; }; int sth(boh a, boh b) { return(a.str < b.str); } int ssth(boh a, boh b) { return(a.str > b.str); } int main() { ios_base::sync_with_stdio(0); int n, m; vector <boh> tabd; vector <boh> tabu; boh pom; long long walka; cin >> n >> m; for(int i = 0; i < n; i++) { pom.idx = i + 1; cin >> pom.str >> pom.hp; if(pom.hp - pom.str >= 0) { tabd.push_back(pom); } else { tabu.push_back(pom); } } sort(tabd.begin(), tabd.end(), sth); sort(tabu.begin(), tabu.end(), ssth); walka = m; for(unsigned int i = 0; i < tabd.size(); i++) { walka -= tabd[i].str; if(walka <= 0) { cout << "NIE"; return 0; } else { walka+= tabd[i].hp; } } for(unsigned int i = 0; i < tabu.size(); i++) { walka -= tabu[i].str; if(walka <= 0) { cout << "NIE"; return 0; } else { walka+= tabu[i].hp; } } cout << "TAK" << "\n"; for(unsigned int i = 0; i < tabd.size(); i++) { cout << tabd[i].idx << " "; } for(unsigned int i = 0; i < tabu.size(); i++) { cout << tabu[i].idx << " "; } return 0; } |
English