제출 #220260

#제출 시각아이디문제언어결과실행 시간메모리
220260super_j6Hamburg Steak (JOI20_hamburg)C++14
15 / 100
420 ms24180 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> using namespace std; #define endl '\n' #define pi pair<int, int> #define f first #define s second struct rect{ int x, y, X, Y; }; const int maxn = 200000; int n, m, k; vector<rect> a; vector<int> id; int idx(int x){ return lower_bound(id.begin(), id.end(), x) - id.begin(); } rect bnd(vector<rect> v){ rect ret = {0, 0, m, m}; for(rect i : v){ ret.x = max(ret.x, i.x); ret.y = max(ret.y, i.y); ret.X = min(ret.X, i.X); ret.Y = min(ret.Y, i.Y); } return ret; } bool crs(int a, int b, int c){ return a <= b && b <= c; } vector<pi> solve(vector<rect> v, int x){ rect f = bnd(v); if(x == 1){ if(f.X < f.x || f.Y < f.y) return {}; else return {{f.x, f.y}}; } vector<pi> pt = {{f.x, f.y}, {f.x, f.Y}, {f.X, f.y}, {f.X, f.Y}}; for(pi p : pt){ vector<rect> nv; for(rect i : v){ if(!crs(i.x, p.f, i.X) || !crs(i.y, p.s, i.Y)) nv.push_back(i); } vector<pi> ret = solve(nv, x - 1); if(!ret.empty()){ ret.push_back(p); return ret; } } return {}; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin >> n >> k; a.resize(n); for(int i = 0; i < n; i++){ cin >> a[i].x >> a[i].y >> a[i].X >> a[i].Y; id.push_back(a[i].x); id.push_back(a[i].y); id.push_back(a[i].X); id.push_back(a[i].Y); } sort(id.begin(), id.end()); id.erase(unique(id.begin(), id.end()), id.end()); m = id.size(); for(int i = 0; i < n; i++){ a[i].x = idx(a[i].x); a[i].y = idx(a[i].y); a[i].X = idx(a[i].X); a[i].Y = idx(a[i].Y); } vector<pi> ans = solve(a, k); if(!ans.empty()){ for(pi i : ans) cout << id[i.f] << " " << id[i.s] << endl; return 0; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...