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
#include <cstdio>

int main ()
{
	int n, z;
	int d[100000];
	int a[100000];
	int c[100000];
	int max1,max2;
	int l[100000];
	int w=0;
	bool e=false;
	scanf("%d%d", &n, &z);
	for (int i=0; i<n; i++)
	{
		scanf("%d%d", &d[i], &a[i]);
		c[i]=a[i]-d[i];
	}
	for (int j=0; j<n; j++)
	{
		max1=-1;
		max2=-100000;
		e=false;
		for (int i=0; i<n; i++)
		{
			if (d[i]>max1 && z>d[i])
			{
				max1=d[i];
				max2=c[i];
				l[w]=i;
				e=true;
			}
			else if (z>d[i] && c[i]>max2)
			{
				max2=c[i];
				l[w]=i;
				e=true;
			}
		}
		if (!e)
		{
			printf("NIE");
			break;
		}
		d[l[w]]=-100001;
		c[l[w]]=-100001;
		z+=max2;
		w++;
	}
	if (e)
	{
		printf("TAK\n");
		for (int i=0; i<n; i++)
			printf("%d ", l[i]+1);
	}
}