为甚吗P10108我的这个代码把int改成longlong就成wa了,是longlong有误差吗?
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=-1000000000;
int a[205];
int b[20005];
int f[20005];
int main(){
ios::sync_with_stdio(0);
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
}
for(int i=0;i<=n+n;i++){
f[i]=-1000000000;
}
f[0]=0;
for(int i=0;i<n+n;i++){
for(int j=0;j<m;j++){
if(i>=a[j]){
f[i]=max(f[i],f[i-a[j]]+b[i-a[j]]);
}
}
}
for(int i=n;i<n+n;i++){
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}