제출 #1245644

#제출 시각아이디문제언어결과실행 시간메모리
1245644simplemind_31자동 인형 (IOI18_doll)C++20
6 / 100
40 ms12724 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> graph;
vector<int> to;
int swit;
vector<pair<int,int>> to_swit;
void create_circuit(int M,vector<int>A){
  int N=A.size();
  graph.resize(M+1);
  to.resize(M+1);
  to[0]=A[0];
  graph[0].push_back(A[0]);
  for(int i=0;i<N-1;i++){
    graph[A[i]].push_back(A[i+1]);
  }
  graph[A[N-1]].push_back(0);
  for(int i=0;i<=M;i++){
    if(graph[i].size()==1){
      to[i]=graph[i][0];
    }else if(graph[i].size()>1){
      to[i]=--swit;
      int last=graph[i].size()-1;
      while(last>1){
        to_swit.push_back({--swit,graph[i][last--]});
      }
      to_swit.push_back({graph[i][0],graph[i][1]});
    }
  }
  vector<int> x(to_swit.size()),y(to_swit.size());
  for(int i=0;i<to_swit.size();i++){
    x[i]=to_swit[i].first;
    y[i]=to_swit[i].second;
  }
  answer(to,x,y);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...