Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
///*** Naglowki Piotra Stanczyka
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#include <ctime>
#include <fstream>
using namespace std;
typedef vector<int> VI;
typedef long long LL;
#define FOR(x, b, e) for(int x=b; x<=(e); ++x)
#define FORD(x, b, e) for(int x=b; x>=(e); ��x)
#define REP(x, n) for(int x=0; x<(n); ++x)
#define VAR(v,n) typeof(n) v=(n)
#define ALL(c) c.begin(),c.end()
#define SIZE(x) (int)x.size()
#define FOREACH(i,c) for(VAR(i,(c).begin());i!=(c).end();++i)
#define PB push_back
#define ST first
#define ND second
struct Par
{
int w1, w2, h1, h2;
};
bool operator == (Par a, Par b)
{
return a.w1 == b.w1 && a.w2 == b.w2 &&
a.h1 == b.h1 && a.h2 == b.h2;
}
const int size = 200000;
const int INF = 1000000300;
vector <Par> pars(size);
Par optPar(int n)
{
Par result;
int minw1 = INF, maxw2 = 0, minh1 = INF, maxh2 = 0;
FOR(i, 1, n)
{
if(minw1 > pars[i].w1)minw1 = pars[i].w1;
if(maxw2 < pars[i].w2)maxw2 = pars[i].w2;
if(minh1 > pars[i].h1)minh1 = pars[i].h1;
if(maxh2 < pars[i].h2)maxh2 = pars[i].h2;
}
result.w1 = minw1;
result.w2 = maxw2;
result.h1 = minh1;
result.h2 = maxh2;
return result;
}
int main()
{
ios_base::sync_with_stdio(0);
int t, n, wx1, wx2, hx1, hx2;
Par par;
bool check;
//vector <string> test;
//string temp;
cin>>t;
REP(x, t)
{
cin>>n;
pars.clear();
//test.clear();
FOR(i, 1, n)
{
cin>>wx1>>wx2>>hx1>>hx2;
par.w1 = wx1;
par.w2 = wx2;
par.h1 = hx1;
par.h2 = hx2;
pars[i] = par;
}
par = optPar(n);
check = true;
FOR(i, 1, n)if(par == pars[i])
{
check = false;
cout<<"TAK\n";
//temp = "TAK\n";
//test.PB(temp);
break;
}
if(check)
{
cout<<"NIE\n";
//temp = "NIE\n";
//test.PB(temp);
}
}
//FOREACH(i, test)cout<<*i;
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | ///*** Naglowki Piotra Stanczyka #include <iostream> #include <cstdio> #include <vector> #include <cmath> #include <algorithm> #include <ctime> #include <fstream> using namespace std; typedef vector<int> VI; typedef long long LL; #define FOR(x, b, e) for(int x=b; x<=(e); ++x) #define FORD(x, b, e) for(int x=b; x>=(e); ��x) #define REP(x, n) for(int x=0; x<(n); ++x) #define VAR(v,n) typeof(n) v=(n) #define ALL(c) c.begin(),c.end() #define SIZE(x) (int)x.size() #define FOREACH(i,c) for(VAR(i,(c).begin());i!=(c).end();++i) #define PB push_back #define ST first #define ND second struct Par { int w1, w2, h1, h2; }; bool operator == (Par a, Par b) { return a.w1 == b.w1 && a.w2 == b.w2 && a.h1 == b.h1 && a.h2 == b.h2; } const int size = 200000; const int INF = 1000000300; vector <Par> pars(size); Par optPar(int n) { Par result; int minw1 = INF, maxw2 = 0, minh1 = INF, maxh2 = 0; FOR(i, 1, n) { if(minw1 > pars[i].w1)minw1 = pars[i].w1; if(maxw2 < pars[i].w2)maxw2 = pars[i].w2; if(minh1 > pars[i].h1)minh1 = pars[i].h1; if(maxh2 < pars[i].h2)maxh2 = pars[i].h2; } result.w1 = minw1; result.w2 = maxw2; result.h1 = minh1; result.h2 = maxh2; return result; } int main() { ios_base::sync_with_stdio(0); int t, n, wx1, wx2, hx1, hx2; Par par; bool check; //vector <string> test; //string temp; cin>>t; REP(x, t) { cin>>n; pars.clear(); //test.clear(); FOR(i, 1, n) { cin>>wx1>>wx2>>hx1>>hx2; par.w1 = wx1; par.w2 = wx2; par.h1 = hx1; par.h2 = hx2; pars[i] = par; } par = optPar(n); check = true; FOR(i, 1, n)if(par == pars[i]) { check = false; cout<<"TAK\n"; //temp = "TAK\n"; //test.PB(temp); break; } if(check) { cout<<"NIE\n"; //temp = "NIE\n"; //test.PB(temp); } } //FOREACH(i, test)cout<<*i; return 0; } |
English