답안 #1096409

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1096409 2024-10-04T12:08:49 Z guagua0407 자동 인형 (IOI18_doll) C++17
47 / 100
201 ms 27420 KB
#include "doll.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

const int inf=1e9;

void create_circuit(int m, std::vector<int> a) {
    int n=a.size();
    int lg=__lg(n-1)+1;
    vector<int> state(1<<lg);
    vector<vector<int>> to(1<<lg,vector<int>(2,inf));
    for(int i=1;i<(1<<lg);i++){
        if(i*2<(1<<lg)) to[i][0]=-(i*2);
        if(i*2+1<(1<<lg)) to[i][1]=-(i*2+1);
    }
    for(int i=0;i<n-1;i++){
        int nxt=a[i+1];
        int cur=1;
        while(to[cur][state[cur]]!=inf){
            state[cur]^=1;
            cur=-to[cur][state[cur]^1];
        }
        to[cur][state[cur]]=nxt;
        state[cur]^=1;
    }
    for(int i=n-1;i<(1<<lg);i++){
        int nxt=(i==(1<<lg)-1?0:-1);
        int cur=1;
        while(to[cur][state[cur]]!=inf){
            state[cur]^=1;
            cur=-to[cur][state[cur]^1];
        }
        to[cur][state[cur]]=nxt;
        state[cur]^=1;
    }
    vector<int> vec;
    for(int i=1;i<(1<<lg);i++){
        if(to[i][0]!=-1 or to[i][1]!=-1){
            vec.push_back(i);
        }
    }
    vector<int> c(m+1,-1);
    c[0]=a[0];
    vector<int> x(vec.size()),y(vec.size());
    vector<int> id(1<<lg,inf);
    for(int i=0;i<(int)vec.size();i++){
        id[vec[i]]=i+1;
    }
    for(int i=1;i<(1<<lg);i++){
        if(id[i]==inf){
            to[i/2][i-(i/2)*2]=((to[i][0]==-1)?to[i][1]:to[i][0]);
        }
    }
    for(int i=0;i<(int)vec.size();i++){
        x[i]=to[vec[i]][0];
        y[i]=to[vec[i]][1];
        if(x[i]<0) x[i]=-id[-x[i]];
        if(y[i]<0) y[i]=-id[-y[i]];
        if(x[i]==0) swap(x[i],y[i]);
    }
    answer(c,x,y);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 344 KB Output is partially correct
2 Correct 75 ms 14316 KB Output is correct
3 Partially correct 156 ms 26052 KB Output is partially correct
4 Partially correct 162 ms 27076 KB Output is partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 344 KB Output is partially correct
2 Correct 75 ms 14316 KB Output is correct
3 Partially correct 156 ms 26052 KB Output is partially correct
4 Partially correct 162 ms 27076 KB Output is partially correct
5 Partially correct 182 ms 27420 KB Output is partially correct
6 Partially correct 190 ms 27332 KB Output is partially correct
7 Partially correct 201 ms 27336 KB Output is partially correct
8 Partially correct 175 ms 27080 KB Output is partially correct
9 Partially correct 171 ms 26108 KB Output is partially correct
10 Partially correct 179 ms 27080 KB Output is partially correct
11 Partially correct 185 ms 27164 KB Output is partially correct
12 Partially correct 168 ms 26052 KB Output is partially correct
13 Correct 77 ms 14316 KB Output is correct
14 Partially correct 169 ms 26052 KB Output is partially correct
15 Partially correct 167 ms 26308 KB Output is partially correct
16 Partially correct 3 ms 1116 KB Output is partially correct
17 Correct 95 ms 14284 KB Output is correct
18 Correct 76 ms 14280 KB Output is correct
19 Partially correct 153 ms 26056 KB Output is partially correct
20 Partially correct 165 ms 27080 KB Output is partially correct
21 Partially correct 160 ms 27076 KB Output is partially correct
22 Partially correct 173 ms 27148 KB Output is partially correct