| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1350942 | silence25 | 9월 (APIO24_september) | C++20 | 0 ms | 580 KiB |
#include "september.h"
#include "bits/stdc++.h"
using namespace std;
const int N = 1e5 + 5;
int idx[N][10];
int ans = 0;
int n,m;
vector<vector<int>> g;
void dfs(int nd, int p){
int ok = 1;
for(auto it:g[nd]) if(it != p) dfs(it, nd);
for(auto it:g[nd]) if(it != p) for(int i = 0;i<m;++i) if(idx[nd][i] < idx[it][i]) ok = 0;
for(auto it:g[nd]) if(it != p) for(int i = 0;i<m;++i) idx[nd][i] = max(idx[nd][i], idx[it][i]);
ans += ok;
}
int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
n = N, m = M;
for(int i = 0;i<m;++i) for(int j = 0;j<n - 1;++j) idx[S[i][j]][i] = j;
g.clear();
g.resize(n);
for(int i = 1;i<n;++i) g[F[i]].push_back(i);
dfs(0, -1);
return ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
