机智如我 在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就不能认真点