| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1054052 | socpite | Chameleon's Love (JOI20_chameleon) | C++17 | 38 ms | 720 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "chameleon.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
namespace {
vector<int> g[maxn];
} // namespace
int bs_edge(vector<int> vec, int x){
int l = 0, r = vec.size()-2;
while(l < r){
int mid = (l+r+1)>>1;
vector<int> nw(vec.begin(), vec.begin()+mid);
nw.push_back(x);
if(Query(nw) != nw.size())r = mid-1;
else l = mid;
}
return vec[l];
}
void get_edge(vector<int> vec, int d = 2){
vector<int> bp, oth;
for(auto v: vec){
bp.push_back(v);
if(Query(bp) != bp.size()){
bp.pop_back();
oth.push_back(v);
}
}
vector<int> rmv;
for(auto v: oth){
vector<int> nw = bp;
nw.push_back(v);
bool first = 1;
while(g[v].size() < 3 && (first || Query(nw) != nw.size())){
first = 0;
int tmp = bs_edge(nw, v);
nw.erase(find(nw.begin(), nw.end(), tmp));
g[tmp].push_back(v);
g[v].push_back(tmp);
}
if(g[v].size() == 3)rmv.push_back(v);
}
for(auto v: rmv)oth.erase(find(oth.begin(), oth.end(), v));
if(d)get_edge(oth, d-1);
}
void Solve(int N) {
set<pair<int, int>> bad;
vector<int> vec(N*2);
iota(vec.begin(), vec.end(), 1);
get_edge(vec);
for(int i = 1; i <= 2*N; i++){
if(g[i].size() == 3){
g[i].push_back(i);
for(int j = 0; j < 3; j++){
vector<int> nw = g[i];
nw.erase(nw.begin() + j);
if(Query(nw) == 1){
bad.insert({i, g[i][j]});
bad.insert({g[i][j], i});
}
}
g[i].pop_back();
}
}
for(int i = 1; i <= 2*N; i++){
for(int v: g[i]){
if(v > i)continue;
if(bad.find({v, i}) == bad.end()){
Answer(v, i);
}
}
}
}
Compilation message (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... | ||||
