//#pragma GCC optimize("Ofast,O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include<bits/stdc++.h>
#define int long long
#define F first
#define S second
#define pb push_back
#define popp pop_back
#define in insert
#define endl "\n"
//#define mid (l+r)/2
using namespace std;
const int N=1e6+6;
int n,b[N],ret=0;
void calc(int l , int r){
if(l>=r) return ;
else if(l+1==r){
ret+=bool(b[l]!=b[r]);
return ;
}
int sum1=b[l];
int sum2=b[r];
while(sum1!=sum2){
if(sum1>sum2){
if(r-1>l){
--r;
++ret;
sum2+=b[r];
}
else{
++ret;
return ;
}
}
else{
if(l+1<r){
++l;
++ret;
sum1+=b[l];
}
else{
++ret;
return ;
}
}
}
calc(l+1,r-1);
return ;
}
int32_t main(){
ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
cin>>n;
for(int i=1;i<=n;i++) cin>>b[i];
calc(1,n);
cout<<ret;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |