hdoj1003不知为何wa,求解追分 http:⼀⼀acm.hdu.edu.cn⼀showproblem.php?pid=1003

2024年11月17日 20:24
有2个网友回答
网友(1):

哥哥亲,没有对齐我看的好辛苦啊。
我给你一份我的AC你对比一下就可以了。
8
1 0
1 -1
2 -5 7
2 7 -5
3 -2 1 2
3 2 -2 1
4 1 -4 2 1
4 2 -4 1 1
这个也是一份比较简易的测试数据,可以对比两份代码的测试数据。
还有就是输入全部负数的时候按最大的那个负数作为结果。
输入全部是0的时候结果为0,而且开始和结束都是第一个0,题目有说出现相同结果取第一个。

#include
int main()
{
//freopen("1.txt","r",stdin);
int a[100001];
int t,n,i,m,k,count=0,s1=0;
int sum,max,min;
int r;
scanf("%d",&t);
while(t--)
{ count++;
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
sum=0,max=0,m=1,k=1,r=1,s1=0;
for(i=1;i<=n;i++)
{
if(a[i]>=0)
{
r=0;
}
sum+=a[i];

if(sum<0)
{
sum=0;
s1=i;
}

if(sum>max)
{
max=sum;
k=i;
m=s1+1;
}

}
if(r)
{
max=a[1],m=1,k=1;
for(i=2;i<=n;i++)
{
min=a[i];
if(a[i]>max)
{
m=i,k=i;
max=a[i];
}
}
}
printf("Case %d:\n",count);
printf("%d %d %d\n",max,m,k);
if(t>0)
printf("\n");
}

return 0;
}

网友(2):

给你组测试数据
1
6 1 -10 1 2 3 4

正确的结果应该是 10 3 6