mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 1003.cpp
This commit is contained in:
parent
9ef40eb7b5
commit
d907659b38
63
HDOJ/1003.cpp
Normal file
63
HDOJ/1003.cpp
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
using namespace std;
|
||||||
|
#define MAXN 100005
|
||||||
|
int A[MAXN];
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
scanf("%d",&t);
|
||||||
|
for(int ii=0;ii<t;ii++)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
scanf("%d",&n);
|
||||||
|
int inMAX;
|
||||||
|
int inMAXpos=0;
|
||||||
|
scanf("%d",&inMAX);
|
||||||
|
A[0]=inMAX;
|
||||||
|
for(int i=1;i<n;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&A[i]);
|
||||||
|
if(A[i]>inMAX)
|
||||||
|
{
|
||||||
|
inMAX=A[i];
|
||||||
|
inMAXpos=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(inMAX<0)
|
||||||
|
{
|
||||||
|
printf("Case %d:\n%d %d %d\n",ii+1,inMAX,inMAXpos+1,inMAXpos+1);
|
||||||
|
if(t-ii>1) printf("\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int sum=A[0];
|
||||||
|
int L=0;
|
||||||
|
int R=0;
|
||||||
|
int maxsum=0;
|
||||||
|
int maxL=0;
|
||||||
|
int maxR=0;
|
||||||
|
for(int i=1;i<n;i++)
|
||||||
|
{
|
||||||
|
if(sum>=0)
|
||||||
|
{
|
||||||
|
sum+=A[i];
|
||||||
|
if(A[i]>0) R=i;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sum=A[i];
|
||||||
|
L=R=i;
|
||||||
|
}
|
||||||
|
if(sum>maxsum)
|
||||||
|
{
|
||||||
|
maxsum=sum;
|
||||||
|
maxL=L;
|
||||||
|
maxR=R;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("Case %d:\n%d %d %d\n",ii+1,maxsum,maxL+1,maxR+1);
|
||||||
|
if(t-ii>1) printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user