Submission #798671

# Submission time Handle Problem Language Result Execution time Memory
798671 2023-07-30T22:43:07 Z yeyso Sprinkler (JOI22_sprinkler) C++14
0 / 100
4000 ms 22508 KB
#include <bits/stdc++.h>
using namespace std;

int main(){
    int n, l; cin >> n >> l;
    vector<vector<int>> adj(n, vector<int>());
    int a, b;
    for(int i = 0; i < n - 1; i ++){
        cin >> a >> b; a -= 1; b -= 1;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    vector<int> heights(n, 0);
    int z;
    for(int i = 0; i < n; i ++){
        cin >> z;
        heights[i] = z;
    }
    int queries; cin >> queries;
    int t;
    int x, d, w;
    vector<int> res;
    for(int i = 0; i < queries; i ++){
        cin >> t;
        if(t == 1){
            cin >> x >> d >> w;
            x -= 1;
            queue<vector<int>> q;
            q.push({0, x});
            int node, dist, parent;
            while(!q.empty()){
                node = q.front()[1];
                dist = q.front()[0];
                parent = q.front()[2];
                heights[node] *= w;
                heights[node] %= l;
                
                q.pop();
                for(int i = 0; i < adj[node].size(); i ++){
                    if(adj[node][i] != parent and dist < d){
                        q.push({dist + 1, adj[node][i], node});
                    }
                }
            }
        } else {
            cin >> x;
            res.push_back(heights[x-1]);
        }
    }
    for(int i = 0; i < res.size(); i ++){
        cout << res[i] << "\n";
    }
}
/*
g++ -std=gnu++17 -O2 -pipe -static -o joi joi.cpp

4 7
1 2
2 3
3 4
1
1
1
1
11
1 2 1 2
1 1 0 2
2 1
2 2
2 3
2 4
1 4 10 2
2 1
2 2
2 3
2 4
*/

Compilation message

sprinkler.cpp: In function 'int main()':
sprinkler.cpp:39:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |                 for(int i = 0; i < adj[node].size(); i ++){
      |                                ~~^~~~~~~~~~~~~~~~~~
sprinkler.cpp:50:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |     for(int i = 0; i < res.size(); i ++){
      |                    ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 621 ms 22508 KB Output is correct
3 Correct 2717 ms 21884 KB Output is correct
4 Correct 969 ms 21980 KB Output is correct
5 Execution timed out 4074 ms 21048 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -