Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #pragma comment(linker, "/STACK:256000000000000000000000000000000")
  3. #define qq cout << "!!" << endl;
  4. #define ww cout << "??" << endl;
  5. #define rr return 0;
  6. #define nl cout << endl;
  7. #define pb push_back
  8. #define mk make_pair
  9. #define sqr(a) a * a
  10. #define imp(a) fixed << setprecision(a)
  11. #define x first
  12. #define y second
  13.  
  14. using namespace std;
  15.  
  16. typedef long long ll;
  17. typedef unsigned long long ull;
  18. typedef long double ld;
  19. typedef pair<int, int> pp;
  20. typedef pair<double, double> point;
  21.  
  22. #define pow binpow
  23. ll binpow(ll a, ll n) {
  24. ll res = 1;
  25. while (n) {
  26. if (n & 1)
  27. res *= a;
  28. a *= a;
  29. n >>= 1;
  30. }
  31. return res;
  32. }
  33.  
  34. ld b, q, l;
  35. ll n;
  36. ld *A;
  37. ll ans = 0;
  38.  
  39. void f() {
  40. ld t = l / b;
  41. ld n1 = log2(t) / log2(q); // logQ(l / b);
  42. ld n2 = n1 + 1;
  43. n2 = floor(n2);
  44. ans = n2;
  45. // cout << n2 << endl;
  46. }
  47.  
  48. bool isEx(ld a) {
  49. ld t = a / b;
  50. ld n1 = log2(t) / log2(q); // logQ(l / b);
  51. // cout << n1 << endl;
  52. if(n1 == ((ll) n1)) {
  53. return 1;
  54. }
  55. rr;
  56. }
  57.  
  58. unordered_map<ld, char> used;
  59.  
  60. void solve1() {
  61. for(int i = 0; i < n; i++) {
  62. ll a;
  63. cin >> a;
  64. if(a == b) {
  65. cout << 0; return;
  66. }
  67. }
  68. cout << "inf";
  69. }
  70.  
  71. void solve_1() {
  72. char _c = 0, c = 0;
  73. int ans = 2;
  74. for(int i = 0; i < n; i++) {
  75. ll a;
  76. cin >> a;
  77. if(a == -b && !_c) {
  78. ans--;
  79. _c = 1;
  80. }
  81. if(a == b && !c) {
  82. ans--;
  83. c = 1;
  84. }
  85. }
  86. cout << ((!ans) ? "0" : "inf");
  87. }
  88.  
  89. int main() {
  90. ios_base::sync_with_stdio(0);
  91. cin.tie(0);
  92. cout.tie(0);
  93. // freopen("input.txt", "r", stdin);
  94. // freopen("output.txt", "w", stdout);
  95. cin >> b >> q >> l >> n;
  96. if(q == 1) {
  97. solve1(); rr;
  98. }
  99. if(q == -1) {
  100. solve_1(); rr;
  101. }
  102. f();
  103. A = new ld[n];
  104. for(int i = 0; i < n; i++) {
  105. ll a;
  106. cin >> a;
  107. if(a > l) {
  108. continue;
  109. }
  110. if(!used[a]) {
  111. used[a] = 1;
  112. if(isEx(a)) {
  113. ans--;
  114. }
  115. }
  116. }
  117. // nl;
  118. cout << ans;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement