제출 #1249795

#제출 시각아이디문제언어결과실행 시간메모리
1249795PlayVoltzPermutation Game (APIO25_permgame)C++20
12 / 100
1 ms328 KiB
#include "permgame.h" #include <bits/stdc++.h> using namespace std; #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second int n, m; vector<int> p, chain; vector<pii> edges; vector<vector<int> > vect, graph; bool custom(vector<int> a, vector<int> b){ return a.size()>b.size(); } int decomp(){ vector<bool> visited(n, 0); vect.clear(); for (int i=0; i<n; ++i)if (!visited[i]){ vector<int> temp(1, i); visited[i]=1; while (!visited[p[temp.back()]])visited[p[temp.back()]]=1, temp.pb(p[temp.back()]); vect.pb(temp); } sort(vect.begin(), vect.end(), custom); int res=0; while (vect.size()&&vect.back().size()==1)++res, vect.pop_back(); return n-res; } void bob(vector<int> temp){ vector<int> res(m); for (int i=0; i<m; ++i)res[chain[i]]=temp[i]; int id=Bob(res); swap(p[res[edges[id].fi]], p[res[edges[id].se]]); } int Alice(int M, int e, vector<int> u, vector<int> v, int N, vector<int> P){ n=N, m=M; p=P; graph.resize(n); if (m==2){ decomp(); for (auto c:vect)for (int i=1; i<c.size(); ++i)Bob({c[0], c[i]}); return n; } edges.resize(e); for (int i=0; i<e; ++i){ graph[u[i]].pb(v[i]); graph[v[i]].pb(u[i]); edges[i]=mp(u[i], v[i]); } int ans=0; bool die=0; for (int i=0; i<n; ++i)if (i==p[i])++ans; for (int i=0; i<n; ++i)if (graph[i].size()>=3)die=1; if (die||ans>=n-m+1)return ans; int start=0; for (int i=0; i<n; ++i)if (graph[i].size()==1)start=i; chain.resize(1, start); for (int i=1; i<m; ++i){ if (chain.size()==1||graph[chain.back()][0]!=chain[chain.size()-2])chain.pb(graph[chain.back()][0]); else chain.pb(graph[chain.back()][1]); } if (e==m-1){ while (decomp()>=m){ vector<int> temp; for (auto c:vect)for (auto a:c)temp.pb(a); temp.resize(m); bob(temp); } } }

컴파일 시 표준 에러 (stderr) 메시지

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