# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1015094 | salmon | Mouse (info1cup19_mouse) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int N;
vector<int> v;
void cycle(int j,int je){
int num = v[j];
for(int i = j; i < je; i++){
v[i] = v[i + 1];
}
v[je] = num;
}
void split(int s, vector<int> v){
if(v.size() == 0) return;
vector<int> l;
vector<int> r;
int m = (v.size() - 1) / 2;
for(int i = 0; i <= m; i++){
l.push_back(v[i]);
}
}
void solve(int N){
::N = N;
for(int i = 1; i <= N; i++){
v.push_back(i);
}
set<int> used;
for(int i = 0; i < N; i++){
for(int j = 1; j <= N; j++){
if(used.find(j) == used.end()){
v[i] = j;
int cont = i + 1;
for(int i = 1; i <= N; i++){
if(i != j && used.find(i) == used.end()){
v[cont] = i;
cont++;
}
}
int soom = 0;
int it = i;
for(int i = 0; i < N - it - 1; i++){
cycle(it + 1);
int b = query(v);
if(b == N) return;
soom += b;
}
soom %= (N - it - 1);
if(soom == 0){
used.insert(j);
break;
}
}
}
}
while(true){
query(v);
}
}