Submission #1322532

#TimeUsernameProblemLanguageResultExecution timeMemory
1322532adiyerThe Collection Game (BOI21_swaps)C++20
15 / 100
24 ms2456 KiB
#include "swaps.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int higher[510][510];

bool cmp(int i, int j){
    return higher[i][j];
}

void solve(int n, int v) {
    vector < int > ord;
    vector < pair < int, int > > ask[n + 2];
    for(int i = 1; i <= n; i++){
        int l = 1, r = n - i + 1;
        while(l < r){
            ask[i].push_back({l, r});
            l++, r--;
        }
    }
    for(int i = n + 1; i > 2; i--){
        int l = n + 2 - i, r = n;
        while(l < r){
            ask[i].push_back({l, r});
            l++, r--;
        }
    }
    for(int i = 1; i <= n; i++){
        int j = 0;
        for(auto [l, r] : ask[i]) schedule(l, r);
        vector < int > cur = visit();
        for(auto [l, r] : ask[i]) higher[r][l] = 1 - cur[j], higher[l][r] = cur[j++]; 
    }
    for(int i = 1; i <= n; i++) ord.push_back(i);
    sort(ord.begin(), ord.end(), cmp);
    answer(ord);
}
#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...