Submission #1361003

#TimeUsernameProblemLanguageResultExecution timeMemory
1361003MuhammadSaramSeptember (APIO24_september)C++20
16 / 100
62 ms15660 KiB
#include "september.h"
#include <bits/stdc++.h>

using namespace std;

const int M = 1e5 + 1;

vector<int> nei[M];
int mx[M];

void dfs(int u)
{
	while (nei[u].size())
	{
		int x=nei[u].back();nei[u].pop_back();
		dfs(x), mx[u]=max(mx[u],mx[x]);
	}
}

int solve(int n, int m, vector<int> p, vector<vector<int>> s)
{
	mx[0]=0;
	for (int i=1;i<n;i++)
		nei[p[i]].push_back(i), mx[i]=0;
	for (int i=0;i<m;i++)
		for (int j=0;j<n;j++)
			mx[s[i][j]]=max(mx[s[i][j]],j);
	dfs(0);
	int id=0, ans=0;
	for (int i=0;i<n-1;i++)
	{
		for (int j=0;j<m;j++)
			id=max(id,mx[s[j][i]]);
		if (id==i)
			ans++;
	}
	return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...