下面是我的代码,一直wrong , 没有测出哪个数据输出不对
想知道ac代码,以及我的代码错哪了
还有除了用动态规划还可以用什么做
#include <bits/stdc++.h>
#define ll unsigned long long int
using namespace std;
ll sum=0, a[100007];
int main()
{
ll i, n, m, ans=0;
ll S=0, N=0;
cin>>n;
i=n;
while(i){
cin>>m;
//cout<<i<<endl;
ans=max(ans, m);
a[m]++;i--;
}
//printf("i=%lld\n",i);
ans++;
//printf("ans=%lld\n",ans);
for(i=1;i<=ans;i++) {
if(a[i]==0&&S!=0){
//printf("sum=%lld", sum);
sum+=(S-N)>=N?(S-N):N;
//printf("sum=%lld S-N=%lld N=%lld\n", sum , S-N, N);
S=0, N=0;
}
else{
S+=i*a[i];
if(i%2==0)N+=i*a[i];
}
}
cout<<sum<<endl;
return 0;
}