救
P2371 [国家集训队] 墨墨的等式
RE求助
#include<bits/stdc++.h>
#define int long long
#define N (int)2e6+5
#define inf 1e18
using namespace std;
int n,l,r;
int a[N],f[N];
int ans;
signed main(){
ios::sync_with_stdio();
cin.tie();
cout.tie();
cin>>n>>l>>r;
l--;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=a[1];i++) f[i]=inf;
for(int i=2;i<=n;i++){
for(int j=0,_lim=__gcd(a[1],a[i]);j<_lim;j++){
for(int t=j,c=0;c<2;c+=t==j){
int nx=(t+a[i])%a[1];
f[nx]=min(f[nx],f[t]+a[i]),t=nx;
}
}
}
for(int i=0;i<a[1];i++){
if(f[i]<=r) ans+=(r-f[i])/a[1]+1;
if(f[i]<=l) ans-=(l-f[i])/a[1]+1;
}
cout<<ans;
return 0;
}
6