Advertisement
a53

secv_fara_functii

a53
Dec 4th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include <fstream>
  2. #define NMAX 1000001
  3. using namespace std;
  4. int N,K,S,P,a[NMAX],b[NMAX];
  5.  
  6. int main()
  7. {
  8. ifstream f("secv.in");
  9. f>>P>>N>>K>>S;
  10. for(int i=1;i<=N;++i)
  11. f>>a[i];
  12. f.close();
  13. int Nr=0;
  14. if(P==1)
  15. {
  16. int j=0;
  17. for(int i=1;i<=N;++i)
  18. {
  19. b[j+1]=b[j]+a[i];
  20. ++j;
  21. if(j>=K&&b[j]-b[j-K]>S)
  22. ++Nr,j-=K;
  23. }
  24. }
  25. else
  26. {
  27. int dr=1,st=0;
  28. for(int i=1;i<=N;++i)
  29. a[i]+=a[i-1];
  30. for(int i=1;i<=N;++i)
  31. {
  32. if(i+K<=N)
  33. {
  34. while(dr<=st&&a[i+K]-a[i-1]>=a[b[st]+K]-a[b[st]-1])
  35. --st;
  36. b[++st]=i;
  37. }
  38. if(a[b[dr]+K]-a[b[dr]-1]-(a[i]-a[i-1])>S)
  39. ++Nr;
  40. if(b[dr]==i-K)
  41. ++dr;
  42. }
  43. }
  44. ofstream g("secv.out");
  45. g<<Nr;
  46. g.close();
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement