Submission #899660

#TimeUsernameProblemLanguageResultExecution timeMemory
899660MackerTropical Garden (IOI11_garden)C++17
49 / 100
5022 ms3920 KiB
#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>
 
using namespace std;
typedef long long ll;
typedef long double ld;
#define all(v) v.begin(), v.end()

//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx2")

vector<vector<int>> adj;
int t;

bool up(int a, int p, int s){
    if(s == 0) return a == t;
    if(adj[a].size() > 1 && adj[a][0] == p) return up(adj[a][1], a, --s);
    else return up(adj[a][0], a, --s);
}

void count_routes(int N, int M, int P, int R[][2], int Q, int G[])
{
    t = P;
    adj.assign(N, vector<int>());
    for (int i = 0; i < M; i++) {
        adj[R[i][0]].push_back(R[i][1]);
        adj[R[i][1]].push_back(R[i][0]);
    }
    for (int j = 0; j < Q; j++) {
        int cnt = 0;
        for (int i = 0; i < N; i++) {
            cnt += up(i, -1, G[j]);
        }
        answer(cnt);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...