# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1054521 | 2024-08-12T10:26:58 Z | bachhoangxuan | Secret Permutation (RMI19_permutation) | C++17 | 0 ms | 344 KB |
#include "permutation.h" #include<bits/stdc++.h> using namespace std; void solve(int n){ vector<int> D(n),P(n); iota(P.begin(),P.end(),1); shuffle(P.begin(),P.end(),mt19937(1)); int S=0; for(int i=0;i<n;i++) S+=(D[i]=query(P)),rotate(P.begin(),P.begin()+1,P.end()); S/=(n-1); for(int &x:D) x=S-x; vector<int> a(n),vis(n+1); function<void(int)> dfs = [&](int i){ if(i>=n){ if(abs(a[0]-a[n-1])!=D[0]) return; vector<int> res(n); for(int i=0;i<n;i++) res[P[i]-1]=a[i]; answer(res); return; } for(int t:{-1,-1}){ int x=a[i-1]+t*D[i]; if(1<=x && x<=n && !vis[x]){ a[i]=x,vis[x]=1; dfs(i+1); vis[x]=0; } } }; for(int i=1;i<=n;i++){ a[0]=i,vis[i]=1; dfs(1); vis[i]=0; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |