比赛 |
20121023 |
评测结果 |
WWAAAAAAAA |
题目名称 |
圆圈舞蹈 |
最终得分 |
80 |
用户昵称 |
QhelDIV |
运行时间 |
0.065 s |
代码语言 |
C++ |
内存使用 |
2.34 MiB |
提交时间 |
2012-10-23 20:37:50 |
显示代码纯文本
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("circlea.in");
ofstream fout("circlea.out");
long long Max,Maxpos,N,Dis[100001],ck[100001],antick[100001],MMax;
int main()
{
fin>>N;
for(int i=1;i<=N;i++)
{
fin>>Dis[i];
ck[i]=ck[i-1]+Dis[i];
}
for(int i=1;i<=N;i++)
antick[i]=ck[N]-ck[i];
for(int i=1;i<=N;i++)
{
if(min(ck[i],antick[i])>Max)
{
Max=min(ck[i],antick[i]);
Maxpos=i;
}
else
break;
}
for(int i=2;i<=N;i++)
{
Max=min(ck[Maxpos]-ck[i-1],antick[Maxpos]+ck[i-1]);
while(min(ck[Maxpos+1]-ck[i-1],antick[Maxpos+1]+ck[i-1])>Max && Maxpos<N)
{
Max=min(ck[Maxpos+1]-ck[i-1],antick[Maxpos+1]+ck[i-1]);
Maxpos++;
}
if(Maxpos>=N)
break;
MMax=max(MMax,Max);
}
fout<<MMax<<endl;
fin.close();
fout.close();
return 0;
}