제출 #1073816

#제출 시각아이디문제언어결과실행 시간메모리
1073816Gabriel자동 인형 (IOI18_doll)C++17
6 / 100
115 ms12664 KiB
#include "doll.h"
#include "bits/stdc++.h"
using namespace std;
void create_circuit(int M, vector<int> A){
  int n = A.size();
  map<int, int> Mapa;
  bool _1 = 1, _2 = 1;
  for(int i = 0; i < n; i++){
    Mapa[A[i]]++;
    if(Mapa[A[i]] > 1) _1 = 0;
    if(Mapa[A[i]] > 2) _2 = 0; 
  }
  vector<int> c(M + 1, 0), x, y;
  if(_1){
    for(int i = 0; i < n; i++){
      if(i == 0){
        c[0] = A[i];
      } else {
        c[A[i - 1]] = A[i];
      }
    }
  } else if(_2){
    vector<bool> Usados(M + 1, 0);
    int j = -1;
    A.push_back(0);
    for(int i = 0; i <= n; i++){
      if(i == 0){
        c[0] = A[i];
      } else {
        if(Usados[A[i - 1]]){
          x.push_back(c[A[i - 1]]);
          c[A[i - 1]] = j;
          j--;
          y.push_back(A[i]);
        } else {
          c[A[i - 1]] = A[i];
          Usados[A[i - 1]] = 1;
        }
      }
    }
  }
  answer(c, 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...