fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long N = 1e9 + 7;
  6.  
  7. long long exponentiation(long long base, long long exp)
  8. {
  9. if (exp == 0)
  10. return 1;
  11.  
  12. if (exp == 1)
  13. return base % N;
  14.  
  15. long long t = exponentiation(base, exp / 2);
  16. t = (t * t) % N;
  17.  
  18. if (exp % 2 == 0)
  19. return t;
  20. else
  21. return ((base % N) * t) % N;
  22. }
  23.  
  24. int main(){
  25. long long n;
  26. cin >> n;
  27. long long power = exponentiation(2, n) % N;
  28. long long multiple = (n - (n%5)) / 5;
  29. long long answer;
  30. if (n < 4) {
  31. answer = 0;
  32. }
  33. else if (n==4) {
  34. answer = 2;
  35. }
  36. else if (n%5 == 0) {
  37. answer = (power - multiple * 2) / 10;
  38. }
  39. else if (n%5 == 1) {
  40. answer = (power - multiple * 4) / 10;
  41. }
  42. else if (n%5 == 2) {
  43. answer = (power - multiple * 8) / 10 + exponentiation(2, multiple - 1);
  44. }
  45. else if (n%5 == 3) {
  46. answer = (power - multiple * 6) / 10;
  47. }
  48. else if (n%5 == 4) {
  49. answer = (power - multiple * 2) / 10;
  50. }
  51.  
  52. cout << answer;
  53. }
Success #stdin #stdout 0.01s 5308KB
stdin
18
stdout
26212