mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 1231.cpp
This commit is contained in:
parent
52610b2cf6
commit
d41d868362
69
HDOJ/1231.cpp
Normal file
69
HDOJ/1231.cpp
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
#define MAXL 10240
|
||||||
|
int a[MAXL];
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int result,start,ends;
|
||||||
|
}PACK;
|
||||||
|
PACK MaxSum(int N)
|
||||||
|
{
|
||||||
|
int sum=-1;
|
||||||
|
int tmp=0;
|
||||||
|
int start=0;
|
||||||
|
int ends=0;
|
||||||
|
int tmpstart=0;
|
||||||
|
int tmpends=0;
|
||||||
|
for(int i=0;i<N;i++)
|
||||||
|
{
|
||||||
|
if(tmp>0)
|
||||||
|
{
|
||||||
|
tmp+=a[i];
|
||||||
|
tmpends=i;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp=a[i];
|
||||||
|
tmpstart=i;
|
||||||
|
}
|
||||||
|
if(tmp>sum)
|
||||||
|
{
|
||||||
|
sum=tmp;
|
||||||
|
start=tmpstart;
|
||||||
|
ends=tmpends;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(ends<start)
|
||||||
|
{
|
||||||
|
ends=start;
|
||||||
|
}
|
||||||
|
PACK c;
|
||||||
|
c.result=sum;
|
||||||
|
c.start=start;
|
||||||
|
c.ends=ends;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
while(scanf("%d",&t)==1&&t!=0)
|
||||||
|
{
|
||||||
|
bool check=true;
|
||||||
|
for(int i=0;i<t;i++)
|
||||||
|
{
|
||||||
|
scanf("%d",&a[i]);
|
||||||
|
if(check&&a[i]>=0) check=false;
|
||||||
|
}
|
||||||
|
if(check)
|
||||||
|
{
|
||||||
|
printf("0 %d %d\n",a[0],a[t-1]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
PACK c=MaxSum(t);
|
||||||
|
printf("%d %d %d\n",c.result,a[c.start],a[c.ends]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user