- 本人只AC了A和B,会掉多少分?
- 本人的D的代码如下所示,求助为啥过不了(WA样例)。
#include<bits/stdc++.h>
#define ns "-1"
#define fs(i,x,y,z) for(ll i=x;i<=y;i+=z)
#define ft(i,x,y,z) for(ll i=x;i>=y;i+=z)
#define ll long long
#define ull unsigned long long
#define db double
#define ms(a,b) memset(a,b,sizeof(a))
#define sz(a) sizeof(a)
using namespace std;
const int rw[]={-1,0,1,0,-1,1,-1,1},cl[]={0,1,0,-1,-1,1,1,-1};
const int N=100001,inf=0x3f3f3f3f;
const int daynum[]={114514,31,28,31,30,31,30,31,31,30,31,30,31};
const db E=2.718281828459,pi=acos(-1.0),eps=0.0000000001;
inline int read(){
int date=0,w=1;char c=0;
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date*w;
}
ull ksm(ull a,ull b){
ull ans=1,base=a;
while(b){
if(b&1){
ans*=base;
}
base*=base;
b>>=1;
}
return ans;
}
ll gcd(ll a,ll b){
if(b) return gcd(b,a%b);
return a;
}
bool prm(int k){
if(k<2) return 0;
if(k==2||k==3) return 1;
if(k%6!=1&&k%6!=5) return 0;
for(int i=5;i<=sqrt(k);i+=6)
if(k%i==0||k%(i+2)==0) return 0;
return 1;
}
int n,a[N];
int main(){
int t=read();
while(t--){
n=read();
fs(i,1,n,1) a[i]=read();
int start=1,end=n,x=0,y=0,prex=0,prey=0,ans=0,prestart=1,preend=n;
printf("---\n");
while(end-start>1){
int deltay=y-prey;
prex=x;
while(x-prex<=deltay&&start<=n&&start<end-1){
x+=a[start];
start++;
}
if(start!=prestart) ans++,prestart=start;
int deltax=x-prex;
prey=y;
while(y-prey<=deltax&&end>=1&&start<end-1){
y+=a[end];
end--;
}
if(end!=preend) ans++,preend=end;
}
printf("%d %d %d\n",ans,x,y);
}
return 0;
}