Submission #756114

#TimeUsernameProblemLanguageResultExecution timeMemory
756114drdilyorMechanical Doll (IOI18_doll)C++17
6 / 100
56 ms8032 KiB
#include<bits/stdc++.h>
#include "doll.h"
using namespace std;
using ll = long long;

void create_circuit(int m, std::vector<int> arr) {
    vector<int> c(m+1);
    vector<int> x, y;
    auto add = [&](int a, int b){
        x.push_back(a), y.push_back(b);
        return -(int)x.size();
    };

    int n = arr.size();
    vector<pair<int,int>> nxt(m+1, {-1, -1});
    arr.push_back(0);
    for (int i = 0; i < n; i++) {
        if (nxt[arr[i]].first!=-1) {
            nxt[arr[i]].second = arr[i+1];
        } else nxt[arr[i]].first = arr[i+1];
    }
    for (int i = 1; i <= m; i++) {
        if (nxt[i].first == -1) {
            c[i] = 0;
        } else if (nxt[i].second == -1) {
            c[i] = nxt[i].first;
        } else {
            c[i] = add(nxt[i].first, nxt[i].second);
        }
    }
    c[0] = arr[0];
    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...