제출 #1152037

#제출 시각아이디문제언어결과실행 시간메모리
1152037arkanefuryMouse (info1cup19_mouse)C++20
0 / 100
0 ms416 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, m, d) for(int x = n; x >= m; x -= d) #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][N]; vector<int>q, v, lp; void solve(int n){ FORR(i, n, 1, 1) { q.pb(i); } ans = query(q); if(ans==n)return; FOR(i, 1, 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 + 1){ 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; b[i] = 1; 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]); } } b[1] = 1; FOR(i,2,n,1){ if(b[i])continue; swap(q[0], q[i-1]); sum = query(q); if(ans - 2 == sum)b[i] = 1; swap(q[0], q[i-1]); } FOR(i, 1, n-1, 1){ if(!b[i]){ bool f = 0; swap(q[0], q[i-1]); FOR(j, i, n-1, 1){ if(b[j+1])continue; swap(q[i-1], q[j]); sum = query(q); if(sum >= ans){ ans ++; swap(q[0], q[j]); sum = query(q); if(ans + 1 == sum)b[j+1] = 1; break; } swap(q[i-1], q[j]); } } } query(q); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...