/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 400.0 KiB
#3 Accepted 39ms 1.77 MiB
#4 Accepted 37ms 1.77 MiB
#5 Accepted 24ms 1.816 MiB
#6 Accepted 32ms 1.77 MiB
#7 Accepted 795ms 8.539 MiB
#8 Accepted 823ms 8.547 MiB
#9 Accepted 856ms 8.57 MiB
#10 Accepted 791ms 8.441 MiB
#11 Accepted 812ms 8.527 MiB
#12 Accepted 833ms 8.586 MiB
#13 Accepted 773ms 8.656 MiB
#14 Accepted 247ms 18.391 MiB
#15 Time Exceeded ≥1102ms ≥24.945 MiB
#16 Time Exceeded ≥1102ms ≥24.332 MiB

Code


#include <bits/stdc++.h>
using namespace std;
void dfs(int node,vector<vector<int>> &adj,vector<int> &s,vector<int> &light){
    if(light[node] == 1){
            s.push_back(node);
        }
    for(int t : adj[node]){
        dfs(t,adj,s,light);
    }
    
}
void toggle(int node,vector<vector<int>> &adj,vector<int> &light){
    if(light[node] == 1){
            light[node] = 0;
        }else{
            light[node] = 1;
        }
    for(int t : adj[node]){
        
        toggle(t,adj,light);
    }
}
int main()
{
    int n;
    cin >> n;
    vector<int> light(n+1);
    for(int i = 1; i <= n; i++){
        int c;
        cin >> c;
        light[i] = c;
    }
    vector<vector<int>> adj(n+1);
    for(int i = 0; i < n-1; i++){
        int a,b;
        cin >> a >> b;
        adj[a].push_back(b);
    }
    int q;
    cin >> q;
    for(int i = 0; i < q; i++){
        int a,b;
        cin >> a >> b;
        if(a == 2){
            vector<int> s;
            dfs(b,adj,s,light);
            cout << s.size() << endl;
        }else{
            toggle(b,adj,light);
        }
    }
}

Information

Submit By
Type
Submission
Problem
P1101 Mr. Heart and the Enchanted Lights
Contest
Brain Booster #6
Language
C++17 (G++ 13.2.0)
Submit At
2024-10-03 16:44:44
Judged At
2024-10-03 16:44:44
Judged By
Score
80
Total Time
≥1102ms
Peak Memory
≥24.945 MiB