제출 #1366697

#제출 시각아이디문제언어결과실행 시간메모리
1366697ahmdnawazSeptember (APIO24_september)C++20
컴파일 에러
0 ms0 KiB
#include "september.h"

#include <bits/stdc++.h>

using namespace std;

#define all(x) (x).begin(), (x).end()

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	vector<int> deg(N, 0);
	for (int i = 1; i < N; i++) {
		deg[i]++;
		deg[F[i]]++;
	}
	for (int i = 1; i < N; i++)
		deg[i]--;
	vector<bool> have(n, false);
	auto is_valid = [&](vector<int> vec) {
		vector<int> Deg = deg;
		int sm = 0;
		for (int node : vec) {
			if (Deg[node] == 0) { 
				while (1) {
					if (node == 0) break;
					Deg[F[node]]--;
					if (Deg[F[node]] == 0) {
						if (have[F[node]]) {
							have[F[node]] = false;
							sm -= 1;  
						} else {
							break;
						}
					}
					node = F[node];
				}
			} else {
				have[F[node]] = true;
				sm += 1; 
			}
		}
		if (!sm) {
			deg = Deg;
		}
		return !sm;
	};
	int ans = 0;
	vector<set<int>> vec(M);
	for (int i = 0; i < N - 1; i++) {
		for (int j = 0; j < M; j++)
			vec[j].insert(S[j][i]);
		bool ok = true;
		for (int j = 1; j < M; j++)
			if (vec[j] != vec[j - 1])
				ok = false;
		if (!ok) continue;
		vector<int> to_check;
		for (int node : vec[0])
			to_check.push_back(node);
		if (is_valid(to_check)) {
			for (int j = 0; j < M; j++)
				vec[j].clear();
			ans += 1; 
		}
	}
	return ans;
}


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

september.cpp: In function 'int solve(int, int, std::vector<int>, std::vector<std::vector<int> >)':
september.cpp:17:27: error: 'n' was not declared in this scope
   17 |         vector<bool> have(n, false);
      |                           ^