我的代码可以在vc上通过,为什么不能在杭州电子科大acm上通过?谁帮助下啊,万分感谢!

来源:百度知道 编辑:UC知道 时间:2024/07/01 11:56:39
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i,j,k,a,b,m,n,max,s[10000];
int sum=0,d=1;
cin>>m;
while(m--)
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>s[i];
}
max=s[0];
a=b=1;
for(i=0;i<n;i++)
{
if(s[i]>max)
{
max=s[i];
a=b=i+1;
}
for(j=i+1;j<n;j++)
{
for(k=i;k<=j;k++)
{
sum+=s[k];
}
if(sum>max)
{
max=sum;
a=i+1;b=j+1;
}
sum=0;
}
}
cout<<"Case "<<d++<<":"<<endl;
cout<<max<<" "<<a<<" "<<b<<endl;
if(m>0)
{
cout<<endl;
}
}
return 0;
}
这是杭大的第1003题,有会的

#include<iostream>
#include<string>
using namespace std;

改成
#include <iostream.h>
#include <string.h>
试试

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <cmath>
using namespace std;

long num[100001];

int main(int argc, char *argv[])
{
long n,sum,i,t,j,start,end,m,nn;
scanf("%ld",&t);nn=1;
while(t--)
{
scanf("%d",&i);
for(j=1;j<=i;j++)
{ scanf("%ld",&num[j]);}

for(j=2;j<=i;j++)
{if(num[j-1]>=0)
{num[j]+=num[j-1]; }

}m=num[1]; end=1;

for(j=2;j<=i;j++)
{if(num[j]>m) {m=num[j];end=j;}
}
for(start=j=end;j>=1;j--)
{if(num[j]>=0)
start=j;
else break;
}

printf("Case %d:\n%d %d %d\n",nn++,m,start,end);
if(t!=0) prin