Submission #1206172

#TimeUsernameProblemLanguageResultExecution timeMemory
1206172dostsThe Collection Game (BOI21_swaps)C++20
5 / 100
10 ms424 KiB
//
// --- Sample implementation for the task swaps ---
//
// To compile this program with the sample grader, place:
//     swaps.h swaps.cpp sample_grader.cpp
// in a single folder and run:
//     g++ swaps.cpp sample_grader.cpp
// in this folder.
//
#include "swaps.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
//#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int N = 501;
int cmp[N][N];
vi f(int l,int r) {
    if (l == r) return {l};
    int m = (l+r) >> 1;
    vi v1 = f(l,m),v2 = f(m+1,r);
/*     vector<pii> qs;
    for (int i=l;i<=m;i++) {
        for (int j=m+1;j<=r;j++) schedule(i,j),qs.push_back({i,j});
    } */
/*     vi res = visit();
    for (int i = 0;i<qs.size();i++) cmp[qs[i].ff][qs[i].ss] = res[i],cmp[qs[i].ss][qs[i].ff] = !res[i]; */
    vi merged;
    int ptr = 0,ptr2 = 0;
    while (ptr < v1.size() || ptr2 < v2.size()) {
        if (ptr < v1.size() && ptr2 < v2.size()) {
            schedule(v1[ptr],v2[ptr2]);
            int c = visit()[0];
            if (c) merged.push_back(v1[ptr++]);
            else merged.push_back(v2[ptr2++]);
        }
        else if (ptr < v1.size()) merged.push_back(v1[ptr++]);
        else merged.push_back(v2[ptr2++]);
    }
    return merged;
}

void solve(int N, int V) {
    answer(f(1,N));
}
#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...