Submission #1273574

#TimeUsernameProblemLanguageResultExecution timeMemory
1273574KindaGoodGamesThe Collection Game (BOI21_swaps)C++20
3 / 100
1599 ms496 KiB
//
// --- Sample implementation for the task swaps ---
//
// To compile this program with the sample grader, place:
//     swaps.h swaps_sample.cpp sample_grader.cpp
// in a single folder and run:
//     g++ swaps_sample.cpp sample_grader.cpp
// in this folder.
//
#include "swaps.h"
#include<bits/stdc++.h>

using namespace std;
#define pii pair<int,int>

void solve(int n, int V) {
    vector<vector<bool>> adj(n, vector<bool>(n));
    vector<int> in(n); 
    int cnt = 0;
    int mx = (n*(n-1))/2;
    int ops = 0;
    while(cnt < mx){
        vector<pii> comps;
        set<int> occ; 
        for(int i = 0; i < n; i++){
            if(occ.count(i)) continue;
            for(int j = 0; j < n; j++){
                if(j == i || occ.count(j) ||adj[i][j]) continue;
                adj[i][j] = true;
                adj[j][i] = true;
                cnt++;
                comps.push_back({i,j});
                occ.insert(i);
                occ.insert(j);
                schedule(i+1,j+1);
                break;
            }
        }

        vector<int> r = visit();
        ops++;
        while(ops > 500){
            cerr <<"D";
        }
        for(int i = 0; i < r.size(); i++){ 
            if(r[i] == 1){ 
                in[comps[i].second]++;
            }else{ 
                in[comps[i].first]++;
            }
        }
    }  
    
    vector<int> ans(n);
    for(int i = 0; i < n; i++){ 
        ans[in[i]] = i+1;
    }
    answer(ans);
}
#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...