提出 #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
結果
AC × 10
AC × 12
AC × 21
AC × 10
AC × 48
セット名 テストケース
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