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; } |