Submission #1365275

#TimeUsernameProblemLanguageResultExecution timeMemory
1365275mrasool1665September (APIO24_september)C++20
0 / 100
3 ms580 KiB
//MRasol kheyri
//Iran -> Khorasan -> ferdows -> Baghestan
//15/2/1405
//vasate azmoonima...
#include<bits/stdc++.h>
//#include<september.h>
using namespace std ;
typedef long long ll ;
#define el '\n'
const ll maxn = 1e6 + 100 ;
ll n , m , mark[maxn] , ind[maxn] , mx ;
vector<ll> adj[maxn] ;
void dfs(ll u){
	mark[u] = 1 ;
	mx = max(mx,ind[u]) ;
	for(auto v : adj[u]){
		if(!mark[v]){
			dfs(v) ;
		}
	}
	return ;
}
int solve(int N , int M , vector<int> F , vector<vector<int>> S){
    n = N , m = M ;
	fill(mark,mark+n,0) ;
	for(ll i = 0 ; i < n ; i++){
		adj[i].clear() ;
	}
	for(ll i = 1 ; i < n ; i++){
		adj[F[i]].push_back(i)	 ;
	}
	for(ll i = 0 ; i < m ; i++){
		for(ll j = 0 ; j < n-1 ; j++){
			ind[S[i][j]] = max(ind[S[i][j]],j) ;
		}
	}
	ll ans = 0 ;
	ll i = 0 ;
	while(i < n-1){
		mx = i ;
		for(ll j = i ; j <= mx ; j++){
			if(!mark[S[0][j]]){
				dfs(S[0][j]) ;
			}
		}
		ans++ ;
		i = mx+1 ;
	}
	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...