机智如我 在bc做题又赢在了DP ~~再有102分就到1700了,努力再努力~~
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[100005];
int num[100005];
int maxn[100005];
int n;
int f(int x)
{
return ((1890*x+143)%10007);
}
int max(int a,int b)
{
if(a>b) return a;
return b;
}
int main()
{
while(~scanf("%d",&n))
{
int count=0;
for(int i=1;i<=n;i++) {
scanf("%d",&a[i]);
num[i]=f(a[i])-a[i];
count+=a[i];
}
// for(int i=1;i<=n;i++)printf("%d ",num[i]);
long long ans=0,last=0;
for(int i=1;i<=n;i++)
{
last=max(0,last)+num[i];
ans=max(ans,last);
}
printf("%I64d\n",ans+count);
}
return 0;
}
不过因为没输出空格WA了几次也是醉了,前些天还有场比赛是因为数组开小了orz就不能认真点