Submission #740443

#TimeUsernameProblemLanguageResultExecution timeMemory
740443danikoynovMechanical Doll (IOI18_doll)C++14
16 / 100
84 ms14944 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int maxn = 2e5 + 10;

int n, m;
vector < int > g[maxn];
void create_circuit(int M, vector<int> A)
{
    n = A.size();
    m = M;

    vector < int > c(m + 1);
    g[0].push_back(A[0]);
    for (int i = 1; i < A.size(); i ++)
    {
        g[A[i - 1]].push_back(A[i]);
    }
    g[A.back()].push_back(0);
    vector < int > x, y;
    for (int i = 0; i <= m; i ++)
    {
        if (g[i].size() == 0)
            c[i] = 0;
        else
        if (g[i].size() == 1)
        c[i] = g[i][0];
        else
        if (g[i].size() == 2)
        {
            x.push_back(g[i][0]);
            y.push_back(g[i][1]);
            int dev = x.size();
            c[i] = -dev;
        }
        else
        if (g[i].size() == 3)
        {
            int dev = x.size() + 1;
            x.push_back(- (dev + 1));
            y.push_back(- (dev + 2));
            c[i] = - dev;
            x.push_back(g[i][0]);
            y.push_back(- dev);
            x.push_back(g[i][1]);
            y.push_back(g[i][2]);
        }
        else
        {
            int dev = x.size() + 1;
            x.push_back(- (dev + 1));
            y.push_back(- (dev + 2));
            c[i] = -dev;
            x.push_back(g[i][0]);
            y.push_back(g[i][2]);
            x.push_back(g[i][1]);
            y.push_back(g[i][3]);
        }
    }
    /**for (int i = 0; i <= m; i ++)
        cout << c[i] << " ";
    cout << endl;
    for (int i = 0; i < x.size(); i ++)
        cout << x[i] << " " << y[i] << endl;*/
    answer(c, x, y);
}

Compilation message (stderr)

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