#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define st first
#define nd second
bool compare(const pair<long long, pair<long long, long long > >&i, const pair<long long, pair<long long, long long> >&j)
{
return i.nd.st-i.nd.nd < j.nd.st - j.nd.nd;
}
pair<long long, pair<long long, long long> > para[101];
long long n, m;
long long aktualny_czas = 0;
void przydziel() {
sort(para, para+n, compare);
long long max = 0;
long long przydziel = 0;
long long zero = 0;
for(long long i = 0; i < n; i++) {
if(para[i].nd.nd == 0) {
zero++;
continue;
}
if(aktualny_czas >= para[i].st && aktualny_czas > (para[i].nd.st - para[i].nd.nd)) {
max++;
}
if(aktualny_czas >= para[i].st && przydziel != m && para[i].nd.nd != 0) {
para[i].nd.nd--;
przydziel++;
}
}
if(max >= 1) { puts("NIE"); exit(0);};
if(zero == n) {puts("TAK"); exit(0);};
}
int main() {
scanf("%lld%lld", &n, &m);
for(int i = 0; i < n; i++) {
scanf("%lld%lld%lld", ¶[i].st, ¶[i].nd.st, ¶[i].nd.nd);
}
while(true) {
przydziel();
aktualny_czas++;
}
}
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 | #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define st first #define nd second bool compare(const pair<long long, pair<long long, long long > >&i, const pair<long long, pair<long long, long long> >&j) { return i.nd.st-i.nd.nd < j.nd.st - j.nd.nd; } pair<long long, pair<long long, long long> > para[101]; long long n, m; long long aktualny_czas = 0; void przydziel() { sort(para, para+n, compare); long long max = 0; long long przydziel = 0; long long zero = 0; for(long long i = 0; i < n; i++) { if(para[i].nd.nd == 0) { zero++; continue; } if(aktualny_czas >= para[i].st && aktualny_czas > (para[i].nd.st - para[i].nd.nd)) { max++; } if(aktualny_czas >= para[i].st && przydziel != m && para[i].nd.nd != 0) { para[i].nd.nd--; przydziel++; } } if(max >= 1) { puts("NIE"); exit(0);}; if(zero == n) {puts("TAK"); exit(0);}; } int main() { scanf("%lld%lld", &n, &m); for(int i = 0; i < n; i++) { scanf("%lld%lld%lld", ¶[i].st, ¶[i].nd.st, ¶[i].nd.nd); } while(true) { przydziel(); aktualny_czas++; } } |
English