#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std;
#define span_n(x, n) x, x+n
const int nmLim = 103;
const int inf = 10000003;
int n, m;
struct proc
{
int p, k, kc;
bool operator < (const proc &other) const
{
return kc < other.kc;
}
} P[nmLim];
int main()
{
scanf("%d%d", &n, &m);
if(n <= m)
{
puts("TAK");
return 0;
}
int p0 = inf, kn = 0;
for(int i = 0; i < n; ++i)
{
int c;
scanf("%d%d%d", &P[i].p, &P[i].k, &c);
P[i].kc = P[i].k-c;
p0 = min(p0, P[i].p);
kn = max(kn, P[i].k);
}
int done = 0;
for(int i = p0; i <= kn; ++i)
{
sort(span_n(P, n));
for(int pI = 0, mI = 0; pI < n && mI < m; ++pI)
{
if(P[pI].p > i || P[pI].kc == P[pI].k)
continue;
if(P[pI].k <= i)
{
puts("NIE");
return 0;
}
++mI;
if(++P[pI].kc == P[pI].k)
if(++done == n)
{
puts("TAK");
return 0;
}
}
}
puts("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 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <cstdlib> #include <cstdio> #include <algorithm> using namespace std; #define span_n(x, n) x, x+n const int nmLim = 103; const int inf = 10000003; int n, m; struct proc { int p, k, kc; bool operator < (const proc &other) const { return kc < other.kc; } } P[nmLim]; int main() { scanf("%d%d", &n, &m); if(n <= m) { puts("TAK"); return 0; } int p0 = inf, kn = 0; for(int i = 0; i < n; ++i) { int c; scanf("%d%d%d", &P[i].p, &P[i].k, &c); P[i].kc = P[i].k-c; p0 = min(p0, P[i].p); kn = max(kn, P[i].k); } int done = 0; for(int i = p0; i <= kn; ++i) { sort(span_n(P, n)); for(int pI = 0, mI = 0; pI < n && mI < m; ++pI) { if(P[pI].p > i || P[pI].kc == P[pI].k) continue; if(P[pI].k <= i) { puts("NIE"); return 0; } ++mI; if(++P[pI].kc == P[pI].k) if(++done == n) { puts("TAK"); return 0; } } } puts("NIE"); return 0; } |
English