제출 #1306419

#제출 시각아이디문제언어결과실행 시간메모리
1306419Double_Slash함박 스테이크 (JOI20_hamburg)C++20
3 / 100
1999 ms5576 KiB
#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;
#define all(x) x.begin(), x.end()
using Rect = array<int, 4>;

const int INF = 1e9;

int main() {
    int n, k;
    cin >> n >> k;
    vector<Rect> rects(n);
    for (auto &[l, d, r, u]: rects) cin >> l >> d >> r >> u;
    mt19937 gen(chrono::high_resolution_clock::now().time_since_epoch().count());
    shuffle(all(rects), gen);
    vector<vector<Rect>> v{{rects.back()}};
    rects.pop_back();
    for (auto &[L, D, R, U]: rects) {
        vector<vector<Rect>> v2;
        for (const auto &s: v) {
            for (int i = s.size(); i--;) {
                auto s2 = s;
                auto &r = s2[i];
                r[0] = max(r[0], L);
                r[2] = min(r[2], R);
                if (r[0] > r[2]) continue;
                r[1] = max(r[1], D);
                r[3] = min(r[3], U);
                if (r[1] > r[3]) continue;
                sort(all(s2));
                v2.push_back(s2);
            }
            if (s.size() == k) continue;
            auto s2 = s;
            s2.push_back({L, D, R, U});
            sort(all(s2));
            v2.push_back(s2);
        }
        v = move(v2);
        sort(all(v));
        v.erase(unique(all(v)), v.end());
        shuffle(all(v), gen);
        if (v.size() > 100) v.erase(100 + all(v));
    }
    while (v[0].size() < k) v[0].push_back({1, 1, 0, 0});
    for (auto &[l, d, r, u]: v[0]) cout << l << ' ' << d << endl;
}
#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...