제출 #1207716

#제출 시각아이디문제언어결과실행 시간메모리
1207716jasonicThe Collection Game (BOI21_swaps)C++20
0 / 100
0 ms416 KiB
#include "swaps.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define fastIO cin.tie(0); ios::sync_with_stdio(false)

vector<int> a;

bool compare(const int x, const int y) {
    schedule(x, y);
    vector<int> z = visit();
    z = visit();
    
    return (z[0] == 1);
}

void conquer(int l_l, int l_r, int r_l, int r_r) {
    queue<int> l, r, f;
    for(int i = l_l; i <= l_r; i++) l.push(a[i]);
    for(int i = r_l; i <= r_r; i++) r.push(a[i]);
    while(!l.empty() && !r.empty()) {
        if(compare(l.front(), r.front())) { // left is bigger
            f.push(l.front());
            l.pop();
        } else {
            f.push(r.front());
            r.pop();
        }
    }
    while(!l.empty()) {
        f.push(l.front());
        l.pop();
    }
    while(!r.empty()) {
        f.push(r.front());
        r.pop();
    }
    for(int i = l_l; i <= r_r; i++) {
        a[i] = f.front();
        f.pop();
    }
}

void divide(int l, int r) {
    if(l != r) {
        int m = (l+r)/2;
        divide(l, m);
        divide(m+1, r);
        conquer(l, m, m+1, r);
    }
}

void solve(int N, int V) {
    a = vector<int>(N);
    for(int i = 0; i < N; i++) a[i] = i+1;

    divide(0, N-1);

    answer(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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...