제출 #1236346

#제출 시각아이디문제언어결과실행 시간메모리
1236346Malix트리 (IOI24_tree)C++20
10 / 100
2093 ms8256 KiB
#include "tree.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> ti; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define LSOne(s) ((s)&(-s)) #define all(x) (x).begin(),(x).end() ll INF=1000000000000000010; int inf=1e9+10; ll M=1e9+7; int n; std::vector<int> p, w; void init(std::vector<int> P, std::vector<int> W) { p=P;w=W;n=P.size(); } long long query(int L, int R) { ll l=L,r=R; vector<ll> a(n,0),b(n,0); for(int i=n-1;i>=0;i--){ if(a[i]==0)b[i]=l; else if(a[i]>r)b[i]=r-a[i]; a[i]+=b[i]; if(i!=0)a[p[i]]+=a[i]; } ll ans=0; REP(i,0,n)ans+=(ll)w[i]*abs(b[i]); return ans; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...