#include<cstdio> #include<algorithm> #include<vector> using namespace std; int zost[110],zap[110],n,m,t[110],p[110],k[110],d[110]; vector<int> ADD[1100000],DEL[1100000]; bool comp(int a1,int a2) { if(zost[a1]==0)return false; if(zost[a2]==0)return true; if(zap[a1]==zap[a2])return zost[a1]>zost[a2]; return zap[a1]<zap[a2]; } int main() { for(int i=0;i<100;i++)t[i]=i; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d%d%d",&p[i],&k[i],&d[i]); ADD[p[i]].push_back(i); DEL[k[i]-1].push_back(i); } for(int i=0;i<1050000;i++) { for(int j=0;j<ADD[i].size();j++) { int X=ADD[i][j]; zost[X]=d[X]; zap[X]=k[X]-p[X]-d[X]; } sort(t,t+n,comp); for(int j=0;j<m;j++) { if(zost[t[j]]>0)zost[t[j]]--; } for(int j=m;j<n;j++) { if(zost[t[j]]>0) { if(zap[t[j]]>0)zap[t[j]]--; else { printf("NIE"); return 0; } } } for(int j=0;j<DEL[i].size();j++) { if(zost[DEL[i][j]]>0) { printf("NIE"); return 0; } } } printf("TAK"); }
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 | #include<cstdio> #include<algorithm> #include<vector> using namespace std; int zost[110],zap[110],n,m,t[110],p[110],k[110],d[110]; vector<int> ADD[1100000],DEL[1100000]; bool comp(int a1,int a2) { if(zost[a1]==0)return false; if(zost[a2]==0)return true; if(zap[a1]==zap[a2])return zost[a1]>zost[a2]; return zap[a1]<zap[a2]; } int main() { for(int i=0;i<100;i++)t[i]=i; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d%d%d",&p[i],&k[i],&d[i]); ADD[p[i]].push_back(i); DEL[k[i]-1].push_back(i); } for(int i=0;i<1050000;i++) { for(int j=0;j<ADD[i].size();j++) { int X=ADD[i][j]; zost[X]=d[X]; zap[X]=k[X]-p[X]-d[X]; } sort(t,t+n,comp); for(int j=0;j<m;j++) { if(zost[t[j]]>0)zost[t[j]]--; } for(int j=m;j<n;j++) { if(zost[t[j]]>0) { if(zap[t[j]]>0)zap[t[j]]--; else { printf("NIE"); return 0; } } } for(int j=0;j<DEL[i].size();j++) { if(zost[DEL[i][j]]>0) { printf("NIE"); return 0; } } } printf("TAK"); } |