#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define ppb pop_back
#define eb emplace_back
#define e1 first
#define e2 second
#define For(a, b, i) for(int i=a;i<b; ++i)
#define Dfor(a, b, i) for(int i=a;i>=b; --i)
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<pii, pii> pp;
const int mod=1e9+7;
const int inf=1e9+9;
const int mod69=1e9+696969;
#define maxn 110
int t[maxn][3],n,m;
pii p[maxn],k[maxn];
vector <int> proc[maxn];
void wczytaj()
{
scanf("%d%d", &n, &m);
For(0, n, i) scanf("%d%d%d", &t[i][0], &t[i][1], &t[i][2]);
}
void tworz()
{
For(0, n, i)
{
p[i].e1=t[i][0];
p[i].e2=t[i][1]-t[i][2];
k[i].e1=t[i][0]+t[i][2];
k[i].e2=t[i][1];
////printf("%d %d\n%d %d\n\n", p[i].e1, p[i].e2, k[i].e1, k[i].e2);
}
}
bool czy(int r, int akt)
{
//bool q=true;
int w=0;
For(0, (int) proc[r].size(), i)
{
if((p[proc[r][i]].e2>k[akt].e1) || (k[proc[r][i]].e1<p[akt].e2)) w++;
}
///printf("%d %d %d %d\n", r, proc[r].size(), akt, w);
if(w==(int) proc[r].size()) {proc[r].pb(akt);return true;}
else return false;
}
int main()
{
wczytaj();
tworz();
///bool q=true;
For(0, n, i)
{
For(0, m, j)
{
if(czy(j, i)==true) break;
}
/*printf("%d\n", i);
For(0, (int) m, j) {printf("%d %d\n", j, (int) proc[j].size());}
puts("\n");*/
}
int wyn=0;
For(0, m , i)
{
wyn+=(int) proc[i].size();
}
if(wyn==n) puts("TAK");
else puts("NIE");
}
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 72 73 74 75 | #include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back #define ppb pop_back #define eb emplace_back #define e1 first #define e2 second #define For(a, b, i) for(int i=a;i<b; ++i) #define Dfor(a, b, i) for(int i=a;i>=b; --i) typedef long long int ll; typedef unsigned long long int ull; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef pair<pii, pii> pp; const int mod=1e9+7; const int inf=1e9+9; const int mod69=1e9+696969; #define maxn 110 int t[maxn][3],n,m; pii p[maxn],k[maxn]; vector <int> proc[maxn]; void wczytaj() { scanf("%d%d", &n, &m); For(0, n, i) scanf("%d%d%d", &t[i][0], &t[i][1], &t[i][2]); } void tworz() { For(0, n, i) { p[i].e1=t[i][0]; p[i].e2=t[i][1]-t[i][2]; k[i].e1=t[i][0]+t[i][2]; k[i].e2=t[i][1]; ////printf("%d %d\n%d %d\n\n", p[i].e1, p[i].e2, k[i].e1, k[i].e2); } } bool czy(int r, int akt) { //bool q=true; int w=0; For(0, (int) proc[r].size(), i) { if((p[proc[r][i]].e2>k[akt].e1) || (k[proc[r][i]].e1<p[akt].e2)) w++; } ///printf("%d %d %d %d\n", r, proc[r].size(), akt, w); if(w==(int) proc[r].size()) {proc[r].pb(akt);return true;} else return false; } int main() { wczytaj(); tworz(); ///bool q=true; For(0, n, i) { For(0, m, j) { if(czy(j, i)==true) break; } /*printf("%d\n", i); For(0, (int) m, j) {printf("%d %d\n", j, (int) proc[j].size());} puts("\n");*/ } int wyn=0; For(0, m , i) { wyn+=(int) proc[i].size(); } if(wyn==n) puts("TAK"); else puts("NIE"); } |
English