#include "bits/stdc++.h"
#include "grader.h"
using namespace std;
typedef long long ll;
#define pb push_back
vector<int>v,a[5],h;
ll f[307];
void solve(int n){
for(int i=1;i<=n;i++){
v.pb(i);
}
ll x=query(v);
if(x==n)return ;
for(int i=1;i<n;i++){
swap(v[0],v[i]);
ll y=query(v);
a[y-x+2].pb(i);
swap(v[0],v[i]);
}
if(a[2].size()==0 && a[3].size()==0 && a[4].size()==0){
f[0]=1;
for(auto it:a[0]){
f[it]=1;
}
}else{
for(auto it:a[1]){
f[it]=1;
}
if(a[4].size()==1){
swap(v[0],v[a[4][0]]);
f[0]=1;
f[a[4][0]]=1;
x+=2;
}else{
swap(v[0],v[a[3][0]]);
swap(v[0],v[a[3][1]]);
ll y=query(v);
if(y-x==2){
f[0]=1;
f[a[3][1]]=1;
x=y;
}else if(y-x==3){
f[0]=1;
f[a[3][0]]=1;
f[a[3][1]]=1;
x=y;
}else{
swap(v[0],v[a[3][1]]);
swap(v[0],v[a[3][0]]);
swap(v[0],v[a[3][1]]);
swap(v[0],v[a[3][0]]);
y=query(v);
if(y-x==2){
f[0]=1;
f[a[3][1]]=1;
x=y;
}else if(y-x==3){
f[0]=1;
f[a[3][0]]=1;
f[a[3][1]]=1;
x=y;
}
}
}
}
while(1){
h.clear();
for(int i=0;i<n;i++){
if(f[i]==0){
h.pb(i);
}
}
for(int i=1;i<h.size();i++){
swap(v[h[i-1]],v[h[i]]);
}
swap(v[h[0]],v[h[h.size()-1]]);
ll y=query(v);
if(y==n)return ;
if(x!=y){
for(auto i:h){
swap(v[0],v[i]);
ll z=query(v);
if(z-y==-2){
f[i]=1;
}
swap(v[0],v[i]);
}
}
}
return ;
}
Compilation message
mouse.cpp: In function 'void solve(int)':
mouse.cpp:79:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
79 | for(int i=1;i<h.size();i++){
| ~^~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
44 ms |
296 KB |
Execution killed with signal 13 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
44 ms |
296 KB |
Execution killed with signal 13 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
44 ms |
296 KB |
Execution killed with signal 13 |
2 |
Halted |
0 ms |
0 KB |
- |