Submission #1201137

#TimeUsernameProblemLanguageResultExecution timeMemory
1201137muhammadali_2009September (APIO24_september)C++20
100 / 100
200 ms11392 KiB
#include "september.h"

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int m, std::vector<int> F, std::vector<std::vector<int>> S) {
    vector<vector<int>> g(n);
    for(int i = 1; i < n; i ++){
        g[F[i]].push_back(i);
    }
	int d2 = 0, d = 0, ans = 0;
    vector<int> cnt(n), visited(n);
    for(int i = 0; i < n-1; ++i){
        int x = S[0][i];
        if (visited[F[x]]) d--;
        visited[x] = 1;
        for(int y: g[x]) if (!visited[y])  d++;
		for(int j = 0; j < m; ++j){
            int x = S[j][i];
            if (cnt[x] == 0) d2++;
            cnt[x]++;
            if (cnt[x] == m) d2--;
        }
		if (d2 == 0 && d == 0) ans++;
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...