Submission #69868857
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;
#define _P(...) (void)printf(__VA_ARGS__)
#define FOR(x,to) for(x=0;x<(to);x++)
#define FORR(x,arr) for(auto& x:arr)
#define FORR2(x,y,arr) for(auto& [x,y]:arr)
#define ALL(a) (a.begin()),(a.end())
#define ZERO(a) memset(a,0,sizeof(a))
#define MINUS(a) memset(a,0xff,sizeof(a))
template<class T> bool chmax(T &a, const T &b) { if(a<b){a=b;return 1;}return 0;}
template<class T> bool chmin(T &a, const T &b) { if(a>b){a=b;return 1;}return 0;}
//-------------------------------------------------------
int N;
template<class V, int ME> class BIT {
public:
V bit[1<<ME];
V operator()(int e) {if(e<0) return 0;V s=0;e++;while(e) s+=bit[e-1],e-=e&-e; return s;}
void add(int e,V v) { e++; while(e<=1<<ME) bit[e-1]+=v,e+=e&-e;}
};
BIT<int,20> bit;
static ll const def=1LL<<60;
template<class V,int NV> class SegTree_3 {
public:
vector<V> val, ma;
SegTree_3(){
int i;
val.resize(NV*2,0); ma.resize(NV*2,0);
};
V getval(int x,int y,int l=0,int r=NV,int k=1) {
if(r<=x || y<=l || y<=x) return def;
if(x<=l && r<=y) return ma[k];
return val[k]+min(getval(x,y,l,(l+r)/2,k*2),getval(x,y,(l+r)/2,r,k*2+1));
}
void update(int x,int y, V v,int l=0,int r=NV,int k=1) {
if(l>=r||y<=x) return;
if(x<=l && r<=y) {
val[k]+=v;
ma[k]+=v;
}
else if(l < y && x < r) {
update(x,y,v,l,(l+r)/2,k*2);
update(x,y,v,(l+r)/2,r,k*2+1);
ma[k]=val[k]+min(ma[k*2],ma[k*2+1]);
}
}
};
SegTree_3<__int128,1<<20> st;
int Q,L,R,K;
void solve() {
int i,j,k,l,r,x,y; string s;
cin>>N;
FOR(i,N) {
ll x;
cin>>x;
st.update(i,i+1,x);
}
cin>>Q;
while(Q--) {
cin>>L>>R>>K;
L--;
ll num=1LL*((R-L)-(bit(R-1)-bit(L-1)))*K;
st.update(L,R,-K);
while(st.getval(0,N)<=0) {
int tr=N;
for(i=19;i>=0;i--) if(tr-(1<<i)>=0&&st.getval(0,tr-(1<<i))<=0) tr-=1<<i;
tr--;
bit.add(tr,1);
num+=st.getval(tr,tr+1);
__int128 a=1LL<<60;
st.update(tr,tr+1,a<<60);
}
cout<<num<<endl;
}
}
int main(int argc,char** argv){
string s;int i;
if(argc==1) ios::sync_with_stdio(false), cin.tie(0);
FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
cout.tie(0); solve(); return 0;
}
Submission Info
| Submission Time |
|
| Task |
F - Clearance |
| User |
kmjp |
| Language |
C++ 20 (gcc 12.2) |
| Score |
525 |
| Code Size |
2316 Byte |
| Status |
AC |
| Exec Time |
1573 ms |
| Memory |
71896 KiB |
Compile Error
Main.cpp: In function ‘void solve()’:
Main.cpp:60:15: warning: unused variable ‘j’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:60:17: warning: unused variable ‘k’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:60:19: warning: unused variable ‘l’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:60:21: warning: unused variable ‘r’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:60:23: warning: unused variable ‘x’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:60:25: warning: unused variable ‘y’ [-Wunused-variable]
60 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp: In function ‘int main(int, char**)’:
Main.cpp:6:19: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:92:9: note: in expansion of macro ‘FOR’
92 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:92:45: note: in expansion of macro ‘FOR’
92 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^
Main.cpp:92:45: note: in expansion of macro ‘FOR’
92 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp: In instantiation of ‘SegTree_3<V, NV>::SegTree_3() [with V = __int128; int NV = 1048576]’:
Main.cpp:55:27: required from here
Main.cpp:32:21: warning: unused variable ‘i’ [-Wunused-variable]
32 | int i;
| ^
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
525 / 525 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt |
| All |
sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt |
| Case Name |
Status |
Exec Time |
Memory |
| sample_01.txt |
AC |
25 ms |
68808 KiB |
| test_01.txt |
AC |
25 ms |
68344 KiB |
| test_02.txt |
AC |
25 ms |
68832 KiB |
| test_03.txt |
AC |
26 ms |
68800 KiB |
| test_04.txt |
AC |
432 ms |
69456 KiB |
| test_05.txt |
AC |
428 ms |
68828 KiB |
| test_06.txt |
AC |
428 ms |
68816 KiB |
| test_07.txt |
AC |
1508 ms |
69784 KiB |
| test_08.txt |
AC |
1456 ms |
69804 KiB |
| test_09.txt |
AC |
1431 ms |
69792 KiB |
| test_10.txt |
AC |
1433 ms |
71372 KiB |
| test_11.txt |
AC |
1253 ms |
71760 KiB |
| test_12.txt |
AC |
1488 ms |
70528 KiB |
| test_13.txt |
AC |
794 ms |
71772 KiB |
| test_14.txt |
AC |
1132 ms |
71776 KiB |
| test_15.txt |
AC |
956 ms |
71760 KiB |
| test_16.txt |
AC |
1228 ms |
70376 KiB |
| test_17.txt |
AC |
1219 ms |
70332 KiB |
| test_18.txt |
AC |
1233 ms |
70340 KiB |
| test_19.txt |
AC |
1227 ms |
70400 KiB |
| test_20.txt |
AC |
1225 ms |
70340 KiB |
| test_21.txt |
AC |
1235 ms |
70364 KiB |
| test_22.txt |
AC |
1337 ms |
69848 KiB |
| test_23.txt |
AC |
1346 ms |
69840 KiB |
| test_24.txt |
AC |
1352 ms |
69888 KiB |
| test_25.txt |
AC |
1348 ms |
69868 KiB |
| test_26.txt |
AC |
1119 ms |
71508 KiB |
| test_27.txt |
AC |
1131 ms |
71232 KiB |
| test_28.txt |
AC |
1185 ms |
71624 KiB |
| test_29.txt |
AC |
1243 ms |
71676 KiB |
| test_30.txt |
AC |
712 ms |
71808 KiB |
| test_31.txt |
AC |
669 ms |
71896 KiB |
| test_32.txt |
AC |
1567 ms |
71660 KiB |
| test_33.txt |
AC |
1553 ms |
71644 KiB |
| test_34.txt |
AC |
1555 ms |
71664 KiB |
| test_35.txt |
AC |
1561 ms |
71648 KiB |
| test_36.txt |
AC |
1573 ms |
71648 KiB |
| test_37.txt |
AC |
1573 ms |
71628 KiB |