Submission #900523

#TimeUsernameProblemLanguageResultExecution timeMemory
900523JakobZorzTropical Garden (IOI11_garden)C++17
49 / 100
5057 ms4188 KiB
#include"garden.h" #include"gardenlib.h" #include<iostream> #include<vector> #include<unordered_map> using namespace std; int n; // num nodes int m; // num edges vector<vector<int>>nodes; // lowest node and second lowest node vector<int>nxt; void add_conn(int node,int dest){ if(nodes[node][0]==-1){ nodes[node]={dest,dest}; }else if(nodes[node][0]==nodes[node][1]){ nodes[node][1]=dest; } } void count_routes(int N,int M,int P,int R[][2],int Q,int G[]){ n=N; m=M; nodes=vector<vector<int>>(n,{-1,-1}); nxt.resize(2*n); for(int i=0;i<m;i++){ add_conn(R[i][0],R[i][1]); add_conn(R[i][1],R[i][0]); } for(int i=0;i<2*n;i++){ nxt[i]=2*nodes[i/2][i%2]; if(nodes[nxt[i]/2][0]==i/2&&nodes[nxt[i]/2][1]!=-1) nxt[i]++; } for(int i=0;i<Q;i++){ int res=0; for(int j=0;j<n;j++){ int curr=2*j; for(int k=0;k<G[i];k++) curr=nxt[curr]; if(curr/2==P) res++; } answer(res); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...