Submission #431284

#TimeUsernameProblemLanguageResultExecution timeMemory
431284Bill_00Tropical Garden (IOI11_garden)C++14
0 / 100
4 ms4940 KiB
#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int> >adj[200000];
int lim,pur,cnt;
void dfs(int node,int from,int zai){
	if(zai==lim && node==pur){
		cnt++;
		return;
	}
	if(adj[node].size()==1){
		dfs(adj[node][0].second,node,zai+1);
		return;
	}
	if(adj[node][0].second!=from){
		dfs(adj[node][0].second,node,zai+1);
	}
	else{
		dfs(adj[node][1].second,node,zai+1);
	}
}
void count_routes(int N, int M, int P, int R[][2], int Q, int G[])
{
	pur=P;
	lim=G[0];
	for(int i=0;i<M;i++){
		adj[R[i][0]].push_back({i,R[i][1]});
		adj[R[i][1]].push_back({i,R[i][0]});
	}
	for(int i=0;i<N;i++){
		sort(adj[i].begin(),adj[i].end());
	}
	for(int i=0;i<N;i++){
		dfs(i,-1,0);
	}
	answer(cnt);
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...