Advertisement
Guest User

Untitled

a guest
Sep 19th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream f("memory006.in");
  4. ofstream g("memory006.out");
  5. long long n,k,i,suma,nr,x,st,dr,p[60];
  6. long mij;
  7. char a[10001],t,j;
  8. char exp(long s,long d)
  9. {
  10. if(s>d) return 0;
  11. mij=(s+d)/2;
  12. if(x==p[mij]) return mij;
  13. if(x<p[mij]) return exp(s,mij-1);
  14. else return exp(mij+1,d);
  15. }
  16. int main()
  17. {
  18. f>>n>>k;
  19. p[1]=2;
  20. for(i=2; i<=57; ++i) p[i]=p[i-1]*2;
  21. nr=0;
  22. suma=0;
  23. st=0;
  24. dr=-1 ;
  25. for(i=0; i<n; ++i)
  26. {
  27. f>>x;
  28. t=exp(1,57);
  29. if(t==0)
  30. {
  31. suma=0;
  32. st=0;
  33. dr=-1;
  34. }
  35. else
  36. {
  37. dr=(dr+1)%10001;
  38. a[dr]=t ;
  39. suma=suma+t;
  40. if(suma>=k)
  41. {
  42. if(suma==k) ++nr;
  43. else
  44. {
  45. while(suma>k)
  46. {
  47. suma=suma-a[st];
  48. st=(st+1)%10001;
  49. }
  50. if(suma==k) ++nr;
  51. }
  52. }
  53. }
  54. }
  55. g<<nr;
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement