Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #pragma comment(linker, "/Stack:266000000")
  2.  
  3. #include <iostream>
  4. #include <cstdio>
  5. #include <cstring>
  6. #include <string>
  7. #include <cmath>
  8. #include <memory.h>
  9. #include <algorithm>
  10. #include <queue>
  11. #include <stack>
  12. #include <vector>
  13. #include <cstdlib>
  14. #include <map>
  15. #include <bitset>
  16. #include <set>
  17.  
  18. using namespace std;
  19.  
  20. #define INF 1E+9
  21. #define INFll 9223372036854775807
  22. #define EPS 1E-7
  23. #define MAXN
  24. #define MAXL
  25. #define mp(x, y) make_pair(x, y)
  26. #define pb(x) push_back(x)
  27. #define all(a) (a).begin(), (a).end()
  28. #ifndef ONLINE_JUDGE
  29. #  define LOG(x) (cerr << #x << " = " << (x) << endl)
  30. #else
  31. #  define LOG(x) 0
  32. #endif
  33.  
  34. typedef long long LL;
  35. typedef long double dbl;
  36.  
  37. dbl binpow(dbl a, dbl n) {
  38.     if (n == 0)
  39.         return 1;
  40.     if (long(n) % 2 == 1)
  41.         return binpow(a, n - 1) * a;
  42.     else {
  43.         dbl b = binpow(a, n / 2);
  44.         return b * b;
  45.     }
  46. }
  47.  
  48. int main(){
  49.  
  50.  
  51.     freopen("differ.in", "r", stdin);
  52.     freopen("differ.out", "w", stdout);
  53.  
  54.     int ans = 0;
  55.  
  56.     dbl a, b;
  57.     cin >> a >> b;
  58.  
  59.     map <double, int> m;
  60.     if (a > b)
  61.         swap(a, b);
  62.  
  63.     ++m[a + b];
  64.  
  65.     ++m[a - b];
  66.     ++m[b - a];
  67.  
  68.     ++m[a * b];
  69.  
  70.     if (a != 0)
  71.         ++m[b / a];
  72.     if (b != 0)
  73.         ++m[a / b];
  74.    
  75.     if (a != 0)
  76.     {
  77.         LL tmp = 1;
  78.         bool f = true;
  79.         for (int i = 0; i < a && f; ++i)
  80.         {
  81.             LL val = tmp;
  82.             tmp *= b * 1ll;
  83.             if (tmp / b != val)
  84.                 ans = 1, f = false;
  85.         }
  86.         if (f)
  87.             ++m[(long double(tmp))];
  88.     }
  89.     if (b != 0)
  90.     {
  91.         LL tmp = 1;
  92.         bool f = true;
  93.         for (int i = 0; i < b && f; ++i)
  94.         {
  95.             LL val = tmp;
  96.             tmp *= a * 1ll;
  97.             if (tmp / a != val)
  98.                 ++ans, f = false;
  99.         }
  100.         if (f)
  101.             ++m[(long double (tmp))];
  102.     }
  103.     cout << m.size() + ans;
  104.  
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement