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
68
69
70
71
#include <bits/stdc++.h>
//#include <queue>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie();
    //queue<int>q;
	bool wynik;
	int n,m;
	int start[n];
	int meta[n];
	int czas[n];
	int startmin;
	int metamax;
	int priorindex;
	int priorvalue;

	wynik=true;
	cin>>n>>m;
	cin>>start[0]>>meta[0]>>czas[0];
	startmin=start[0];
	metamax=meta[0];
	for(int i=1; i<n; i++)
	{
		cin>>start[i]>>meta[i]>>czas[i];
		startmin=min(startmin, meta[i]);
		metamax=max(metamax, meta[i]);
	}
	
	//cout<<startmin<<metamax<<endl;
	for(int j=startmin; j<metamax; j++)
	{
		bool warning[1000000]={false};
		
		for(int k=0; k<m; k++)
		{
			priorvalue=100000000;
			for(int l=0; l<n; l++)
			{
				if(start[l]<=j && meta[l]>j && warning[l]==false && czas[l]>0)
				{
					int prior=meta[l]-czas[l]-j;
					if(prior<priorvalue){priorvalue=prior; priorindex=l;}
				}
			}
			if(priorvalue!=100000000)
			{
				if(priorvalue<0){wynik=false; k=m; j=metamax;}
				czas[priorindex]--;
				warning[priorindex]=true;
				//cout<<priorindex<<endl;
				//q.push_back(priorindex);
			}
		}
		//array.erase(warning);
	}
	for(int o=0; o<n; o++)
	{
		if(czas[o]>0){wynik=false;}
	}
	if(wynik==false){cout<<"NIE"<<endl;}
	if(wynik==true){cout<<"TAK"<<endl;}

//system ("PAUSE");
	return 0;


}