Submission #845513

#TimeUsernameProblemLanguageResultExecution timeMemory
84551312345678Mechanical Doll (IOI18_doll)C++17
16 / 100
65 ms12308 KiB
#include "doll.h"
#include <bits/stdc++.h>

using namespace std;

const int nx=2e5+1000;

void create_circuit(int M, std::vector<int> A) {
    int cnt=0;
    vector<int> C(M+1), X, Y, cl;
    vector<vector<int>> v(M+1);
    v[0].push_back(A[0]);
    for (int i=0; i<A.size()-1; i++) v[A[i]].push_back(A[i+1]);
    v[A[A.size()-1]].push_back(0);
    for (int i=0; i<=M; i++)
    {
        if (v[i].size()==0) continue;
        if (v[i].size()==1) C[i]=v[i][0];
        else if (v[i].size()==2)
        {
            C[i]=--cnt;
            X.push_back(v[i][0]);
            Y.push_back(v[i][1]);
        }
        else if (v[i].size()==3)
        {
            C[i]=--cnt;
            cl.push_back(cnt);
            X.push_back(--cnt);
            Y.push_back(--cnt);
            X.push_back(cnt+2);
            Y.push_back(v[i][1]);
            X.push_back(v[i][0]);
            Y.push_back(v[i][2]);
        }
        else
        {
            C[i]=--cnt;
            X.push_back(--cnt);
            Y.push_back(--cnt);
            X.push_back(v[i][0]);
            Y.push_back(v[i][2]);
            X.push_back(v[i][1]);
            Y.push_back(v[i][3]);
        }
    }
    answer(C, X, Y);
}

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:13:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for (int i=0; i<A.size()-1; i++) v[A[i]].push_back(A[i+1]);
      |                   ~^~~~~~~~~~~
#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...