Submission #1193972

#TimeUsernameProblemLanguageResultExecution timeMemory
1193972zh_hSeptember (APIO24_september)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define pb push_back #define lint long long int using namespace std; vector<int> mx, subtree_mx; vector<vector<int>> edge; void dfs(int v, int p) { subtree_mx[v] = mx[v]; for (auto i : edge[v]) { if (i == p) continue; dfs(i, v); subtree_mx[v] = max(subtree_mx[v], subtree_mx[i]); } } int solve (int n, int m, vector<int> parent, vector<vector<int>> s) { edge.resize(n); for (int i = 1; i < n; i ++) { edge[i].pb(parent[i]); edge[parent[i]].pb(i); } mx.resize(n, -1); for (int i = 0; i < m; i ++) { for (int j = 0; j < n-1; j ++) { mx[s[i][j]] = max(mx[s[i][j]], j); } } subtree_mx.resize(n, 0); dfs(0, -1); int cur_mx = 0; int cur_i = 0; int ans = 0; while (cur_i < n-1) { ans ++; cur_mx = cur_i; while (cur_i <= cur_mx) { cur_mx = max(cur_mx, subtree_mx[s[0][cur_i]]); cur_i ++; } } return ans; } int main() { int n, m; cin >> n >> m; vector<int>p(n); for (int i = 0; i < n; i ++) { cin >> p[i]; } vector<vector<int>> s; for (int i = 0; i < m; i ++) { vector<int> s_temp(n-1); for (int j = 0; j < n-1; j ++) { cin >> s_temp[j]; } s.pb(s_temp); } cout << solve(n, m, p, s) << endl; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccmP1RZw.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccmMydgV.o:september.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status