제출 #1211377

#제출 시각아이디문제언어결과실행 시간메모리
1211377SpyrosAliv자동 인형 (IOI18_doll)C++20
컴파일 에러
0 ms0 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

void create_circuit(int m, vector<int> a) {
    int n = a.size();
    vector<vector<int>> after(m+1);
    after[0].push_back(a[0]);
    for (int i = 0; i < n-1; i++) {
        after[a[i]].push_back({a[i+1]});
    }
    after[a.back()].push_back(0);
    vector<int> conn(m+1);
    for (int i = 0; i <= m; i++) conn[i] = i;
    vector<int> x, y;
    int sw = 0;
    for (int i = 0; i <= m; i++) {
        int adj = after[i].size();
        if (adj == 0) continue;
        else if (adj == 1) {
            conn[i] = after[i][0];
            continue;
        }
        else if (adj == 2) {
            sw++;
            x.push_back(after[i][0]);
            y.push_back(after[i][1]);
            conn[i] = -sw;
        }
        else if (adj == 3) {
            sw++;
            x.push_back(sw+1);
            y.push_back(sw+2);
            conn[i] = sw;
            sw++;
            x.push_back(after[i][0]);
            y.push_back(sw - 1);
            sw++;
            x.push_back(after[i][1]);
            y.push_back(after[i][2]);
        }
        else if (adj == 4) {
            sw++;
            x.push_back(sw+1);
            y.push_back(sw+2);
            conn[i] = sw;
            sw++;
            x.push_back(adj[i][0]);
            y.push_back(adj[i][2]);
            sw++;
            x.push_back(adj[i][1]);
            y.push_back(adj[i][3]);
        }
    }
    answer(conn, x, y);
}

컴파일 시 표준 에러 (stderr) 메시지

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:48:28: error: invalid types 'int[int]' for array subscript
   48 |             x.push_back(adj[i][0]);
      |                            ^
doll.cpp:49:28: error: invalid types 'int[int]' for array subscript
   49 |             y.push_back(adj[i][2]);
      |                            ^
doll.cpp:51:28: error: invalid types 'int[int]' for array subscript
   51 |             x.push_back(adj[i][1]);
      |                            ^
doll.cpp:52:28: error: invalid types 'int[int]' for array subscript
   52 |             y.push_back(adj[i][3]);
      |                            ^