Guest User

С. Различные числа

a guest
Nov 1st, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <cstdio>
  2. #include <set>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. const int mod = 1000000007;
  7.  
  8. long long a, b, c, ab, bc, abc;
  9.  
  10. set<long long> s;
  11.  
  12. long long powmod(long long a, long long b)
  13. {
  14.     long long r = 1;
  15.     while (b)
  16.     {
  17.         if (b&1)
  18.         {
  19.             r = (r * a) % mod;
  20.             b--;
  21.         }
  22.         else
  23.         {
  24.             b >>= 1;
  25.             a = (a * a) % mod;
  26.         }
  27.     }
  28.     return r;
  29. }
  30.  
  31. long long Hash(long long num)
  32. {
  33.     return num * num * num * num;
  34. }
  35.  
  36. int main()
  37. {
  38.     freopen("numbers.in", "r", stdin);
  39.     freopen("numbers.out", "w", stdout);
  40.     cin >> a >> b >> c;
  41.     s.insert(Hash(a+b+c));
  42.     s.insert(Hash(a+b*c));
  43.     s.insert(Hash(a*b+c));
  44.     s.insert(Hash(a*b*c));
  45.     ab = powmod(a,b);
  46.     s.insert(Hash(ab+c));
  47.     s.insert(Hash(ab*c));
  48.     bc = powmod(b,c);
  49.     abc = powmod(a,bc);
  50.     s.insert(Hash(abc));
  51.     cout << s.size();
  52. }
  53.  
  54.  
Advertisement
Add Comment
Please, Sign In to add comment