#include<iostream>
#include<vector>
#include<algorithm>
#define LL long long int
#define PII std::pair<unsigned int, unsigned int>
#define PLL std::pair<LL,LL>
int main(){
std::ios_base::sync_with_stdio(false);
unsigned int n;
LL R;
std::cin>>n>>R;
std::vector<PII> front;
std::vector<PII> back;
front.reserve(n),back.reserve(n);
std::vector<PLL> potwory(n);
for(unsigned int i=0;i<n;++i){
std::cin>>potwory[i].first>>potwory[i].second;
if(potwory[i].second>=potwory[i].first)
front.push_back(PII(potwory[i].first,i));
else
back.push_back(PII(potwory[i].second,i));
}
std::sort(front.begin(),front.end());
std::sort(back.begin(),back.end(),std::greater<PII>());
front.insert(front.end(),back.begin(),back.end());
bool sol=true;
for(unsigned int i=0;i<front.size()&&(sol=(R>potwory[front[i].second].first));++i)
R+=potwory[front[i].second].second-potwory[front[i].second].first;
if(sol){
std::cout<<"TAK"<<"\n";
for(unsigned int i=0;i<n;++i)
std::cout<<(front[i].second+1)<<" ";
}
else
std::cout<<"NIE";
std::cout<<"\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 | #include<iostream> #include<vector> #include<algorithm> #define LL long long int #define PII std::pair<unsigned int, unsigned int> #define PLL std::pair<LL,LL> int main(){ std::ios_base::sync_with_stdio(false); unsigned int n; LL R; std::cin>>n>>R; std::vector<PII> front; std::vector<PII> back; front.reserve(n),back.reserve(n); std::vector<PLL> potwory(n); for(unsigned int i=0;i<n;++i){ std::cin>>potwory[i].first>>potwory[i].second; if(potwory[i].second>=potwory[i].first) front.push_back(PII(potwory[i].first,i)); else back.push_back(PII(potwory[i].second,i)); } std::sort(front.begin(),front.end()); std::sort(back.begin(),back.end(),std::greater<PII>()); front.insert(front.end(),back.begin(),back.end()); bool sol=true; for(unsigned int i=0;i<front.size()&&(sol=(R>potwory[front[i].second].first));++i) R+=potwory[front[i].second].second-potwory[front[i].second].first; if(sol){ std::cout<<"TAK"<<"\n"; for(unsigned int i=0;i<n;++i) std::cout<<(front[i].second+1)<<" "; } else std::cout<<"NIE"; std::cout<<"\n"; return 0; } |
English