제출 #1237629

#제출 시각아이디문제언어결과실행 시간메모리
1237629lunarecho슈퍼트리 잇기 (IOI20_supertrees)C++20
컴파일 에러
0 ms0 KiB
#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long;

struct DSU {

    bool b = true;
    vector<int> parent;
    vector<vector<int>> ways;

    void init(int n)
    {
        parent.resize(n);
        ways.resize(n,vector<int>(n,0));
        for(int i=0;i<n;++i)
            parent[i] = i;
    }

    int find(int x)
    {
        if(parent[x] != x)
            parent[x] = find(parent[x]);
        return parent[x];
    }

    void unite(int a, int b)
    {
        int u = find(a);
        int v = find(b);
        if(u != v)
        {
            parent[u] = v;
            ways[a][b] = 1;
            ways[b][a] = 1;
        }
        else
        {
            b = false;
        }
    }

};


int construct(vector<vector<int>> p) {
	
	int n = p.size();
    if(n == 1)
    {
        if(p[0][0] == 1) 
        {
            build({{0}});
            return 1;
        }
        else
        {
            return 0;
        }
    }
    DSU d;
    d.init(n);
    for(int i=0;i<n;++i)
    {
        for(int j=i+1;j<n;++j)
        {
            if(p[i][j] == 1)
                d.unite(i,j);
        }
    }
    if(!d.b)
    {
        return 0;
    }
    for(int i=0;i<n;++i)
    {
        if(p[i][i])
            ways[i][i] = 1;
    }
    for(int i=0;i<n;++i)
    {
        for(int j=i;j<n;++j)
        {
            if(p[i][j] != d.ways[i][j])
            {
                return 0;
            }
        }
    }
    build(d.ways);
    return 1;
}

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

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:78:13: error: 'ways' was not declared in this scope
   78 |             ways[i][i] = 1;
      |             ^~~~