Submission #1274415

#TimeUsernameProblemLanguageResultExecution timeMemory
1274415hccoderPermutation Game (APIO25_permgame)C++20
6 / 100
273 ms456 KiB
#include <bits/stdc++.h>
using namespace std;

int Bob(std::vector<int> t);


int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p){
    if (m==2){
        map<int, int> mp;
        for (int i = 0; i<n; i++) mp[p[i]] = i;
        for (int i = 0; i<n; i++){
            if (p[i]!=i){
                int x = mp[i];
                Bob({i, x});
                mp[p[i]] = x;
                mp[i] = i;
                swap(p[i], p[x]);
            }
        }
        return n;
    }
    else if (m==3 && e==3){
        int res = 0;
        for (int i = 0; i<n; i++){
            if (p[i]==i) res++;
        }
        vector<int> P = p;
        for (int x = 0; x<n; x++){
            for (int y = x+1; y<n; y++){
                for (int z = y+1; z<n; z++){
                    if (min({p[x], p[y],p[z]})>-1 && (p[x]==y || p[x]==z) && (p[y]==x || p[y]==z) && (p[z]==x || p[z]==y)){
                        res++;
                        p[x]=p[y]=p[z]=-1;
                    }
                }
            }
        }
        p = P;
        for (int i = 0; i<n; i++){
            for (int x = 0; x<n; x++){
                for (int y = x+1; y<n; y++){
                    vector<int> Zp = {p[x], p[y]};
                    for (int z: Zp){
                        if ((p[x]==y || p[x]==z) && (p[y]==x || p[y]==z) && (p[z]==x || p[z]==y)){
                            vector<int> h{x, y, z};
                            int r = Bob(h);
                            swap(p[h[u[r]]], p[h[v[r]]]);
                            break;
                        }
                    }
                }
            }   
        }
        return res;
    }
}

Compilation message (stderr)

permgame.cpp: In function 'int Alice(int, int, std::vector<int>, std::vector<int>, int, std::vector<int>)':
permgame.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
   56 | }
      | ^
#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...