Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
// Micha� Figlus
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
#include<stack>
#include<list>
#include<algorithm>
using namespace std;
int main()
{
int n,i,d,a;
long long z;
bool p=true;
vector<pair<int,pair<int,int> > > x;
vector<pair<int,pair<int,int> > > y;
scanf("%d%lld",&n,&z);
for(i=1;i<=n;i++)
{
scanf("%d%d",&d,&a);
if(a>=d) x.push_back(make_pair(d,make_pair(a,i)));
else y.push_back(make_pair(a,make_pair(d,i)));
}
sort(x.begin(),x.end());
sort(y.begin(),y.end());
reverse(y.begin(),y.end());
a=x.size();
for(i=0;i<a&&p;i++)
{
if(z>x[i].first) z+=(x[i].second.first-x[i].first);
else p=false;
}
d=y.size();
for(i=0;i<d&&p;i++)
{
if(z>y[i].second.first) z+=(y[i].first-y[i].second.first);
else p=false;
}
if(p)
{
printf("TAK\n");
for(i=0;i<a;i++) printf("%d ",x[i].second.second);
for(i=0;i<d;i++) printf("%d ",y[i].second.second);
}
else printf("NIE");
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 | // Micha� Figlus #include<cstdio> #include<cmath> #include<cstring> #include<cstdlib> #include<iostream> #include<fstream> #include<vector> #include<queue> #include<stack> #include<list> #include<algorithm> using namespace std; int main() { int n,i,d,a; long long z; bool p=true; vector<pair<int,pair<int,int> > > x; vector<pair<int,pair<int,int> > > y; scanf("%d%lld",&n,&z); for(i=1;i<=n;i++) { scanf("%d%d",&d,&a); if(a>=d) x.push_back(make_pair(d,make_pair(a,i))); else y.push_back(make_pair(a,make_pair(d,i))); } sort(x.begin(),x.end()); sort(y.begin(),y.end()); reverse(y.begin(),y.end()); a=x.size(); for(i=0;i<a&&p;i++) { if(z>x[i].first) z+=(x[i].second.first-x[i].first); else p=false; } d=y.size(); for(i=0;i<d&&p;i++) { if(z>y[i].second.first) z+=(y[i].first-y[i].second.first); else p=false; } if(p) { printf("TAK\n"); for(i=0;i<a;i++) printf("%d ",x[i].second.second); for(i=0;i<d;i++) printf("%d ",y[i].second.second); } else printf("NIE"); return 0; } |
English