#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
template<typename T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long int ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
#define pb push_back
#define endl '\n'
#define sz(a) (int)a.size()
#define setbits(x) __builtin_popcountll(x)
#define ff first
#define ss second
#define conts continue
#define ceil2(x,y) ((x+y-1)/(y))
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define yes cout << "Yes" << endl
#define no cout << "No" << endl
#define rep(i,n) for(int i = 0; i < n; ++i)
#define rep1(i,n) for(int i = 1; i <= n; ++i)
#define rev(i,s,e) for(int i = s; i >= e; --i)
#define trav(i,a) for(auto &i : a)
template<typename T>
void amin(T &a, T b) {
a = min(a,b);
}
template<typename T>
void amax(T &a, T b) {
a = max(a,b);
}
#ifdef LOCAL
#include "debug.h"
#else
#define debug(x) 42
#endif
/*
*/
const int MOD = 1e9 + 7;
const int N = 1e3 + 5;
const int inf1 = int(1e9) + 5;
const ll inf2 = ll(1e18) + 5;
#include "chameleon.h"
namespace {
int variable_example = 1;
} // namespace
vector<int> cands[N];
int Q = 0;
void go(vector<int> a, vector<int> b){
if(sz(a) == 1){
int i = a[0];
trav(j,b){
cands[i].pb(j), cands[j].pb(i);
}
return;
}
vector<int> la,ra,lb,rb;
rep(i,sz(a)){
if(i < sz(a)/2){
la.pb(a[i]);
}
else{
ra.pb(a[i]);
}
}
trav(j,b){
Q += 2;
assert(Q <= 20000);
la.pb(j);
int res = Query(la);
if(res != sz(la)) lb.pb(j);
la.pop_back();
ra.pb(j);
res = Query(ra);
if(res != sz(ra)) rb.pb(j);
ra.pop_back();
}
go(la,lb);
go(ra,rb);
}
void Solve(int n) {
// std::vector<int> p(3);
// p[0] = 1;
// p[1] = 2;
// p[2] = 3;
// variable_example = Query(p);
// for (int i = 0; i < N; ++i) {
// Answer(i * 2 + 1, i * 2 + 2);
// }
vector<int> v1,v2;
rep1(i,n) v1.pb(i), v2.pb(i+n);
go(v1,v2);
vector<pii> ans;
vector<bool> done(2*n+5);
rep1(i,2*n){
if(done[i]) conts;
/*
vector<int> curr_cands;
rep1(j,2*n){
if(j == i) conts;
int res = Query({i,j});
if(res == 1){
curr_cands.pb(j);
}
}
cands[i] = curr_cands;
*/
auto curr_cands = cands[i];
assert(sz(curr_cands) == 1 or sz(curr_cands) == 3);
if(sz(curr_cands) == 1){
ans.pb({i,curr_cands[0]});
done[i] = done[curr_cands[0]] = 1;
}
}
rep1(i,2*n){
if(done[i]) conts;
int x = cands[i].back();
rep(ind,sz(cands[i])-1){
int j = cands[i][ind];
if(done[j]) conts;
int cnt = 0;
trav(k,cands[i]){
if(k == i or k == j) conts;
int res = Query({i,j,k});
if(res == 1){
cnt++;
}
}
if(cnt == 0) conts;
trav(k,cands[j]){
if(k == i or k == j) conts;
int res = Query({i,j,k});
if(res == 1){
cnt++;
}
}
if(cnt == 2){
x = j;
break;
}
}
assert(x != -1);
ans.pb({i,x});
done[i] = done[x] = 1;
}
for(auto [i,j] : ans){
Answer(i,j);
}
}
Compilation message
chameleon.cpp:64:9: warning: '{anonymous}::variable_example' defined but not used [-Wunused-variable]
64 | int variable_example = 1;
| ^~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Runtime error |
19 ms |
780 KB |
Execution killed with signal 6 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Runtime error |
1 ms |
600 KB |
Execution killed with signal 6 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Runtime error |
1 ms |
600 KB |
Execution killed with signal 6 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Runtime error |
18 ms |
764 KB |
Execution killed with signal 6 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Runtime error |
19 ms |
780 KB |
Execution killed with signal 6 |
4 |
Halted |
0 ms |
0 KB |
- |