Submission #590894

#TimeUsernameProblemLanguageResultExecution timeMemory
590894keta_tsimakuridzeSprinkler (JOI22_sprinkler)C++17
100 / 100
713 ms82832 KiB
#include<bits/stdc++.h> #define f first #define s second #define ll long long #define pii pair<int,int> #define endl "\n" using namespace std; const int N = 1e6 + 5, mod = 1e9 + 7; // ! int t, h[N], cn[N][42], p[N]; vector<int> V[N]; void dfs(int u, int P) { for(int i = 0; i < V[u].size(); i++) { if(V[u][i] != P) p[V[u][i]] = u, dfs(V[u][i], u); } } main(){ ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); int n, L; cin >> n >> L; for(int i = 2; i <= n; i++) { int u, v; cin >> u >> v; V[u].push_back(v); V[v].push_back(u); } for(int i = n + 40; i > n; i--) { V[i].push_back(i - 1); } dfs(n + 40, 0); for(int i = 1; i <= n + 40; i++) { for(int d = 0; d <= 40; d++) cn[i][d] = 1; } for(int i = 1; i <= n; i++) cin >> h[i]; int q; cin >> q; while(q--) { cin >> t; if(t == 1) { int x, d, w; cin >> x >> d >> w; // d1 + d2 = d, d1 + (40 - d) + d2 = 40 d = 40 - d; while(d <= 40) { cn[x][d] = (ll)cn[x][d] * w % L; ++d; x = p[x]; } continue; } int x; cin >> x; int ans = h[x], d = 0; while(x && d <= 40){ ans = (ll)ans * cn[x][40 - d] % L; if(d != 40) ans = (ll)ans * cn[x][39 - d] % L; ++d; x = p[x]; } cout << ans << endl; } }

Compilation message (stderr)

sprinkler.cpp: In function 'void dfs(int, int)':
sprinkler.cpp:12:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for(int i = 0; i < V[u].size(); i++) {
      |                    ~~^~~~~~~~~~~~~
sprinkler.cpp: At global scope:
sprinkler.cpp:16:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   16 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...