제출 #1151892

#제출 시각아이디문제언어결과실행 시간메모리
1151892arkanefuryMouse (info1cup19_mouse)C++20
0 / 100
0 ms420 KiB
#include <bits/stdc++.h> #include "grader.h" #define pb push_back using namespace std; #define F first #define sz size() #define S second #define in insert #define all(v) v.begin(), v.end() #define FOR(x, n, m, d) for(int x = n; x <= m; x += d) #define FORR(x, n) for(int i = x; i >= n; i --) #define nikita ios_base::sync_with_stdio(0), cin.tie(0); const int N = 300+5; int n,m,k,tt,ans,sum=0,l, r, x, y, cnt, block = 448; int a[N][N], b[N], c[N]; void solve(int n){ vector<int>q, v; FOR(i, 1, n, 1){ q.pb(i); } ans = query(q); if(ans==n)return; FOR(i, 1, n-1, 1){ bool ji = 0; if(b[i])continue; FOR(j, i, n-1, 1){ if( b[j+1] )continue; swap(q[i-1], q[j]); sum = query(q); if(sum==n)return; v = q; if(sum == ans){ c[i] = c[j+1] = 1; } if(sum == ans + 1){ if(c[i]){ b[j+1] = 1; ans++; c[j+1] = 1; break; } bool f = 0; FOR(ok, i, n-1, 1){ if(b[ok+1])continue; swap(q[i-1], q[ok]); k = query(q); if(k==n)return; swap(q[i-1], q[ok]); if(k > sum)f = 1; } ans++; if(!f){ q = v; break; } else b[j+1] = 1; } else if(sum==ans+2){ ans += 2; b[i] = b[j+1] = 1; break; } else swap(q[i-1], q[j]); } } query(q); } /* signed main() { nikita tt = 1; if(!tt)cin >> tt; FOR(i, 1, tt, 1){ solve(); } } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...