1 条题解
-
0
#include <iostream>
using namespace std; int l[1000010], r[1000010], n, a[1000010],ans = 1; bool flag; int dfs(int x,int y,int s){ if(x == -1 && y == -1) return 0; if(x == -1 || y == -1 && x != y){ flag = 1; return 0; } if(a[x] != a[y]){ flag = 1; return 0; } return dfs(l[x], r[y], 2) + dfs(r[x], l[y], 2) + s; } int main(){ cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for(int i = 1; i <= n; i++) cin >> l[i] >> r[i]; for(int i = 1;i <= n;i++) { int s = dfs(l[i], r[i], 3); if(s > ans && flag == 0) ans = s; flag = 0; } cout << ans << endl; return 0; }
- 1
信息
- ID
- 3946
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 8
- 已通过
- 6
- 上传者