답안 #766829

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
766829 2023-06-26T07:52:41 Z DJeniUp 자동 인형 (IOI18_doll) C++17
6 / 100
59 ms 15444 KB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

typedef int ll;

#define pb push_back
#define fr first
#define sc second

ll h,a[200007],b[200007],f[200007];

vector<ll>v[200007];

vector<ll>c,x,y;

void create_circuit(int M, std::vector<int> A) {
    A.pb(0);
    for(int i=0;i<A.size()-1;i++){
        v[A[i]].pb(A[i+1]);
    }
    c.pb(A[0]);
    for(int i=1;i<=M;i++){
        if(v[i].size()==0)c.pb(0);
        else if(v[i].size()==1)c.pb(v[i][0]);
        else{
            h++;
            x.pb(0);
            y.pb(0);
            c.pb(-h);
            for(int j=0;j<v[i].size();j++){
                ll k=-c[i]-1;
                while(1){
                    if(f[k]%2==0){
                        f[k]++;
                        if(x[k]==0){
                            x[k]=v[i][j];
                            break;
                        }else if(x[k]<0){
                            k=-x[k]-1;
                        }else{
                            h++;
                            f[h-1]=1;
                            x.pb(0);
                            y.pb(0);
                            x[h-1]=x[k];
                            x[k]=-h;
                            k=h-1;
                        }
                    }else{
                        f[k]++;
                        if(y[k]==0){
                            y[k]=v[i][j];
                            break;
                        }else if(y[k]<0){
                            k=-y[k]-1;
                        }else{
                            h++;
                            f[h-1]=1;
                            x.pb(0);
                            y.pb(0);
                            x[h-1]=y[k];
                            y[k]=-h;
                            k=h-1;
                        }
                    }
                }
            }
        }
    }
    //cout<<c.size()<<" "<<x.size()<<" "<<y.size()<<endl;
    for(int i=0;i<=M;i++){
       // cout<<i<<" "<<c[i]<<endl;
    }
    for(int i=0;i<x.size();i++){
       // cout<<-i-1<<" "<<x[i]<<" "<<y[i]<<endl;
    }
    answer(c,x,y);
    return ;
}

Compilation message

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:19:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for(int i=0;i<A.size()-1;i++){
      |                 ~^~~~~~~~~~~
doll.cpp:31:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |             for(int j=0;j<v[i].size();j++){
      |                         ~^~~~~~~~~~~~
doll.cpp:75:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |     for(int i=0;i<x.size();i++){
      |                 ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 5000 KB Output is correct
2 Correct 19 ms 9300 KB Output is correct
3 Correct 17 ms 8888 KB Output is correct
4 Correct 2 ms 5008 KB Output is correct
5 Correct 10 ms 6220 KB Output is correct
6 Correct 24 ms 10692 KB Output is correct
7 Correct 2 ms 4948 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 5000 KB Output is correct
2 Correct 19 ms 9300 KB Output is correct
3 Correct 17 ms 8888 KB Output is correct
4 Correct 2 ms 5008 KB Output is correct
5 Correct 10 ms 6220 KB Output is correct
6 Correct 24 ms 10692 KB Output is correct
7 Correct 2 ms 4948 KB Output is correct
8 Correct 34 ms 12064 KB Output is correct
9 Correct 37 ms 12424 KB Output is correct
10 Correct 52 ms 15424 KB Output is correct
11 Correct 2 ms 4948 KB Output is correct
12 Correct 2 ms 5008 KB Output is correct
13 Correct 2 ms 5008 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 5000 KB Output is correct
2 Correct 19 ms 9300 KB Output is correct
3 Correct 17 ms 8888 KB Output is correct
4 Correct 2 ms 5008 KB Output is correct
5 Correct 10 ms 6220 KB Output is correct
6 Correct 24 ms 10692 KB Output is correct
7 Correct 2 ms 4948 KB Output is correct
8 Correct 34 ms 12064 KB Output is correct
9 Correct 37 ms 12424 KB Output is correct
10 Correct 52 ms 15424 KB Output is correct
11 Correct 2 ms 4948 KB Output is correct
12 Correct 2 ms 5008 KB Output is correct
13 Correct 2 ms 5008 KB Output is correct
14 Incorrect 59 ms 15444 KB state 'Y'
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 4948 KB state 'Y'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 5004 KB state 'Y'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 5004 KB state 'Y'
2 Halted 0 ms 0 KB -