Submission #1266308

#TimeUsernameProblemLanguageResultExecution timeMemory
1266308abdelhakimPermutation Game (APIO25_permgame)C++20
22 / 100
10 ms328 KiB
#include "permgame.h" #include <vector> #include <utility> #include <bits/stdc++.h> #define dbg(x) cerr << #x << ' ' << x << endl; #define ll long long #define inf (ll) 1e17 using namespace std; // vector<int> t={ind[i],i}; // int j = Bob(t); // std::swap(p[t[u[j]]], p[t[v[j]]]); int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) { vector<vector<ll>> adj(m); ll curans=0; for (int i=0;i<n;i++) { curans+=p[i]==i; } for (int i=0;i<e;i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } for (int i=0;i<m;i++) { if(adj[i].size() > 2) { return curans; } } while(true) { vector<int> t; vector<bool> already(n); for (int i=0;i<n;i++) { if(p[i]!=i && t.size()<m && !already[i]) { t.push_back(i); already[i]=true; i=p[i]-1; } } if(t.size() < m) break; int j = Bob(t); std::swap(p[t[u[j]]], p[t[v[j]]]); } ll cnt=0; for (int i=0;i<n;i++) { cnt+=p[i]==i; } return cnt; }
#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...