# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
64721 | bazsi700 | 사육제 (CEOI14_carnival) | C++14 | 39 ms | 700 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int col[151];
int query(vector<int> &v) {
cout << v.size() << " ";
for(int el : v) {
cout << el << " ";
}
cout << "\n" << flush;
int x;
cin >> x;
return x;
}
bool hasmatch(vector<int> &v, int x) {
if(v.size() == 1) {
v.push_back(x);
int a1 = query(v);
v.pop_back();
return (a1 == 1);
}
int a1 = query(v);
v.push_back(x);
int a2 = query(v);
v.pop_back();
return (a1 == a2);
}
void solve(vector<int> &v, int x, int currcol) {
if(v.empty()) {
return;
}
if(!hasmatch(v,x)) {
return;
}
if(v.size() == 1) {
col[v[0]] = currcol;
return;
}
vector<int> v1 (v.size()/2);
vector<int> v2 (v.size()-v.size()/2);
for(int i = 0; i < v.size()/2; i++) {
v1[i] = v[i];
}
for(int i = 0; i < v.size()-v.size()/2; i++) {
v2[i] = v[i+v.size()/2];
}
solve(v1,x,currcol);
solve(v2,x,currcol);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
int newcol = 1;
for(int i = 1; i <= n; i++) {
if(col[i] != 0) {
continue;
}
col[i] = newcol;
if(i == n) {
break;
}
vector<int> v (n-i);
for(int j = i+1; j <= n; j++) {
v[j-i-1] = j;
}
solve(v,i,newcol++);
}
cout << "0 ";
for(int i = 1; i <= n; i++) {
cout << col[i] << " ";
}
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |