提出 #66999739
ソースコード 拡げる
#include <bits/stdc++.h>
#include "chameleon.h"
using namespace std;
int Query(const vector<int> &p);
void Answer(int a, int b);
namespace solution {
const int N = 1005;
int g[N][N];
vector<int> join(vector<int> a, int b){ return a.push_back(b), a; }
int find(const vector<int>& p, int x){
int l = 0, r = p.size() - 1;
assert(p.size());
while(l < r){
int mid = (l + r) >> 1;
vector<int> vct(p.begin(), p.begin() + mid + 1);
if(Query(join(vct, x)) == (int)vct.size() + 1) l = mid + 1;
else r = mid;
}
return p[l];
}
void Solve(int n){
vector<int> proc(n << 1);
iota(proc.begin(), proc.end(), 1);
while(!proc.empty()){
vector<int> ind, nind;
for(int i : proc) (Query(join(ind, i)) == (int)ind.size() + 1 ? ind : nind).push_back(i);
for(int u : nind){
vector<int> S = ind;
while(Query(join(S, u)) != (int)S.size() + 1){
int v = find(S, u); g[u][v] = g[v][u] = 1;
S.erase(find(S.begin(), S.end(), v));
}
}
proc = nind;
}
for(int i=1;i<=(n<<1);i++){
int ngb[3], t = 0;
for(int j=1;j<=(n<<1);j++) if(g[i][j]) ngb[t++] = j;
if(t == 1) continue;
auto query = [&](int x, int y, int z){
if(Query({i, x, y}) == 1) return g[i][z] = g[z][i] = 2, 0;
return 1;
};
auto [x, y, z] = ngb;
if(query(x, y, z)) if(query(x, z, y)) g[i][x] = g[x][i] = 2;
}
for(int i=1;i<=(n<<1);i++){
for(int j=1;j<i;j++) if(g[i][j] == 1) Answer(i, j);
}
}
}
void Solve(int n){ solution::Solve(n); }
// Written by xiezheyuan
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - カメレオンの恋 (Chameleon's Love) |
| ユーザ | xiezheyuan |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 100 |
| コード長 | 1737 Byte |
| 結果 | AC |
| 実行時間 | 27 ms |
| メモリ | 7912 KiB |
ジャッジ結果
| セット名 | Subtask 1 | Subtask 2 | Subtask 3 | Subtask 4 | Subtask 5 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 4 / 4 | 20 / 20 | 20 / 20 | 20 / 20 | 36 / 36 | ||||||||||
| 結果 |
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| Subtask 1 | sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt |
| Subtask 2 | sample-01.txt, sample-02.txt, sample-03.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt |
| Subtask 3 | sample-01.txt, sample-02.txt, sample-03.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt |
| Subtask 4 | sample-03.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt |
| Subtask 5 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01-01.txt | AC | 3 ms | 3824 KiB |
| 01-02.txt | AC | 3 ms | 3928 KiB |
| 01-03.txt | AC | 14 ms | 7204 KiB |
| 01-04.txt | AC | 14 ms | 7268 KiB |
| 01-05.txt | AC | 14 ms | 7172 KiB |
| 01-06.txt | AC | 14 ms | 7092 KiB |
| 01-07.txt | AC | 15 ms | 7060 KiB |
| 01-08.txt | AC | 13 ms | 7180 KiB |
| 01-09.txt | AC | 15 ms | 7324 KiB |
| 02-01.txt | AC | 3 ms | 3968 KiB |
| 02-02.txt | AC | 3 ms | 3764 KiB |
| 02-03.txt | AC | 3 ms | 3956 KiB |
| 02-04.txt | AC | 3 ms | 3808 KiB |
| 02-05.txt | AC | 3 ms | 3960 KiB |
| 02-06.txt | AC | 3 ms | 3904 KiB |
| 02-07.txt | AC | 3 ms | 3716 KiB |
| 02-08.txt | AC | 3 ms | 3792 KiB |
| 02-09.txt | AC | 3 ms | 3840 KiB |
| 03-01.txt | AC | 4 ms | 4288 KiB |
| 03-02.txt | AC | 3 ms | 4104 KiB |
| 03-03.txt | AC | 3 ms | 4300 KiB |
| 03-04.txt | AC | 3 ms | 4304 KiB |
| 03-05.txt | AC | 4 ms | 4184 KiB |
| 03-06.txt | AC | 3 ms | 4236 KiB |
| 03-07.txt | AC | 3 ms | 4120 KiB |
| 03-08.txt | AC | 3 ms | 4096 KiB |
| 03-09.txt | AC | 3 ms | 4304 KiB |
| 04-01.txt | AC | 3 ms | 3924 KiB |
| 04-02.txt | AC | 3 ms | 4024 KiB |
| 04-03.txt | AC | 24 ms | 7708 KiB |
| 04-04.txt | AC | 25 ms | 7784 KiB |
| 04-05.txt | AC | 25 ms | 7700 KiB |
| 04-06.txt | AC | 24 ms | 7708 KiB |
| 04-07.txt | AC | 25 ms | 7912 KiB |
| 04-08.txt | AC | 25 ms | 7640 KiB |
| 04-09.txt | AC | 24 ms | 7792 KiB |
| 05-01.txt | AC | 24 ms | 7804 KiB |
| 05-02.txt | AC | 14 ms | 7140 KiB |
| 05-03.txt | AC | 23 ms | 7680 KiB |
| 05-04.txt | AC | 23 ms | 7816 KiB |
| 05-05.txt | AC | 24 ms | 7824 KiB |
| 05-06.txt | AC | 15 ms | 7200 KiB |
| 05-07.txt | AC | 27 ms | 7700 KiB |
| 05-08.txt | AC | 24 ms | 7592 KiB |
| 05-09.txt | AC | 23 ms | 7676 KiB |
| sample-01.txt | AC | 2 ms | 3960 KiB |
| sample-02.txt | AC | 3 ms | 3836 KiB |
| sample-03.txt | AC | 3 ms | 3936 KiB |