Advertisement
Guest User

Untitled

a guest
Oct 4th, 2020
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int fi,fr,n,le,ri,i,j,cur,a[1010],f[2001000],q[2001000];
  4. int main() {
  5.   scanf("%d%d%d",&n,&le,&ri);
  6.   for (i=0; i<n; i++) {
  7.     scanf("%d",&a[i]);
  8.     if (i) a[i]-=a[0];
  9.   }
  10.   f[0]=0;
  11.   q[0]=fi=0;
  12.   for (fr=1; fi<fr; fi++) {
  13.     i=q[fi];
  14.     cur=f[i]+1;
  15.     if (f[i]<le) for (j=1; j<n; j++) if (!f[i+a[j]]) {
  16.       f[i+a[j]]=cur;
  17.       q[fr++]=i+a[j];
  18.     }
  19.     f[i]=le;
  20.   }
  21.   for (i=1; i<n; i++) a[i]+=a[0];
  22.   for (fi=0; fi<fr; fi++) {
  23.     i=q[fi];
  24.     cur=f[i]+1;
  25.     if (f[i]<ri) for (j=0; j<n; j++) if (!f[i+a[j]]) {
  26.       f[i+a[j]]=cur;
  27.       q[fr++]=i+a[j];
  28.     }
  29.   }
  30.   printf("%d\n",fr);
  31.   return 0;
  32. }
  33.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement