제출 #1163048

#제출 시각아이디문제언어결과실행 시간메모리
1163048Shadow1Minerals (JOI19_minerals)C++20
31 / 100
10 ms1416 KiB
#include "minerals.h"
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;

using ll = long long;
using ld = long double;
using ull = unsigned long long;
using str = string; // yay python!

#define show(x) cerr << (#x) << " = " << (x) << '\n';
#define output_vector(v) for(auto &x : v){cout << x << ' ';}cout << '\n';
#define output_pairvector(v) for(auto &x : v){cout << x.first << " " << x.second << '\n';}
#define read_vector(v) for(auto &x : v){cin >> x;}
#define vt vector
#define pq priority_queue
#define pb push_back
#define eb emplace_back
#define pii pair<int,int>
#define fir first
#define sec second
#define sz(x) int(x.size())
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define discretize(x) sort(x.begin(), x.end()); x.erase(unique(x.begin(), x.end()), x.end());

void dnc(vector<int> a) {
    int n = sz(a); // 2N
    if(n == 2) {
        Answer(a[0], a[1]);
        return;
    }
    vector<int> x, y;
    vector<bool> in_machine(n);
    int d = 0;
    for(int i=0; i<n; ++i) {
        int res = Query(a[i]);
        if(res > d) 
            in_machine[i] = true;  // pair not in machine
        else 
            res = Query(a[i]); // extract it, pair alr exsits
        d = res;
        if(d == n/4) break;
    }
    for(int i=0; i<n; ++i) {
        if(in_machine[i]) continue;
        int res = Query(a[i]);
        if(res == d)
            in_machine[i] = true;
        else
            res = Query(a[i]);
    }
    for(int i=0; i<n; ++i) {
        if(in_machine[i]) {
            Query(a[i]);
            x.push_back(a[i]);
        } else
            y.push_back(a[i]);
    }
    dnc(x);
    dnc(y);

}

void Solve(int N) {
    vector<int> a(2*N);
    for (int i = 0; i<2*N; ++i) {
        a[i] = i+1;
    }
    dnc(a);
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...