a53

Scobitoare

a53
Nov 29th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream f("scobitoare.in");
  4. ofstream g("scobitoare.out");
  5. int T(int n)
  6. {
  7. if(n==1) return 1;
  8. if(n==2) return 3;
  9. if(n==3) return 7;
  10. if(n==4) return 11;
  11. int Puterea=0,PutereDeDoi=1;
  12. while(PutereDeDoi<n)
  13. {
  14. Puterea++;
  15. PutereDeDoi=PutereDeDoi*2;
  16. }
  17.  
  18. if(PutereDeDoi==n)
  19. {
  20. return (pow(2,2*Puterea+1)+1)/3;
  21. }
  22. else
  23. {
  24. PutereDeDoi=PutereDeDoi/2;
  25. return T(PutereDeDoi)+ 2*T(n-PutereDeDoi)+T(n-PutereDeDoi+1)-1;
  26. }
  27. }
  28. int main()
  29. {
  30. int n,p;
  31. f>>p;
  32. f>>n;
  33. if(p==1)
  34. g<<T(n);
  35. else g<<T(n)-T(n-1);
  36.  
  37. }
Add Comment
Please, Sign In to add comment