ログイン
新規登録
AtsuoCoder Waseda Tour Finals 2025
読込中…
Home
Tasks
Clar
Submissions
Standings
提出 fd4dcaad-58d0-4502-8d77-133596b5b0a2
コード
#include <bits/stdc++.h> using namespace std; int main(){ int n,N = 1; cin >> n; while(n > N) N *= 2; vector<long long> seg(2*N,0); for(int i = 0;i < n;i++){ cin >> seg[i+N]; } for(int i = N-1;i > 0;i--){ seg[i] = max(seg[i*2],seg[i*2+1]); } int D; cin >> D; for(int i = 0;i < D;i++){ int L,R,X,A,B; cin >> L >> R >> X >> A >> B; for(int j = L-1+N;j <= R-1+N;j++) seg[j] += X; /* L += (N-1),R += N; while(L != R && L < R){ if(L % 2 == 1){ seg[L] += X; L++; } if(R % 2 == 1){ R--; seg[R] += X; } L /= 2; R /= 2; } */ for(int j = N-1;j > 0;j--) seg[j] = max(seg[j*2],seg[j*2+1]); // A += (N-1),B += N; long long ans = 0; cerr << "A:" << A << ",B:" << B << endl; while(A != B && A < B){ if(A % 2 == 1){ ans = max(ans,seg[A]); A++; } if(B % 2 == 1){ B--; ans = max(ans,seg[B]); } A /= 2; B /= 2; } cout << ans << endl; // } }
結果
問題
点数
言語
結果
実行時間
メモリ
H - Gardening Diary
50
C++
TLE
2101 ms
7504 KiB