이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <string>
#include <utility>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <cassert>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, count = 2, prefs[155], vals[155];
cin >> n;
prefs[0] = 1;
string s = "1";
for (int i = 1; i < n; i++) {
s += " " + to_string(i+1);
cout << i+1 << " " << s << endl;
cin >> prefs[i];
}
vals[0] = 1;
for (int i = 1; i < n; i++) {
if (prefs[i] == prefs[i-1]+1) {
vals[i] = count;
count++;
}
}
srand(28);
vector<int> nums;
for (int i = 0; i < n; i++) {
if (vals[i] == 0) {
vector<int> temp;
for (int a : nums){
temp.push_back(a);
}
while (temp.size() > 1) {
int ind = rand() % temp.size(), v = temp[ind], in;
cout << 2 << " " << v << " " << (i+1) << endl;
cin >> in;
if (in == 1) {
vals[i] = vals[v];
break;
}
temp.erase(temp.begin() + ind);
}
if (vals[i] == 0) {
vals[i] = vals[temp[0]];
}
} else {
nums.push_back(i+1);
}
}
cout << 0;
for (int i = 0; i < n; i++) {
cout << " " << vals[i];
}
cout << endl;
return 0;
}
# | 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... |