fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. #define ll long long
  6. #define ld long double
  7. const ll MAXN = 1e6 + 5;
  8. ll spf[MAXN];
  9.  
  10. ll power(ll base, ll exp, ll mod)
  11. {
  12. if (exp == 0)
  13. return 1 % mod;
  14.  
  15. ll half = power(base, exp / 2, mod);
  16. ll ans = (half * half) % mod;
  17.  
  18. if (exp % 2 == 1)
  19. ans = (ans * base) % mod;
  20.  
  21. return ans;
  22. }
  23.  
  24. ll gcd(ll a, ll b)
  25. {
  26. if (b == 0)
  27. return a;
  28. return gcd(b, a % b);
  29. }
  30.  
  31. ll lcm(ll a, ll b)
  32. {
  33. return a / gcd(a, b) * b;
  34. }
  35.  
  36. void sieve()
  37. {
  38. for (int i = 1; i < MAXN; i++)
  39. spf[i] = i;
  40.  
  41. for (int p = 2; p * p < MAXN; p++)
  42. {
  43. if (spf[p] == p)
  44. {
  45. for (int i = p * p; i < MAXN; i += p)
  46. {
  47. if (spf[i] == i)
  48. spf[i] = p;
  49. }
  50. }
  51. }
  52. }
  53.  
  54. vector<pair<ll, ll>> primeFactorization(ll x)
  55. {
  56. vector<pair<ll, ll>> factors;
  57. while (x > 1)
  58. {
  59. ll prime = spf[x];
  60. ll count = 0;
  61.  
  62. while (x % prime == 0)
  63. {
  64. count++;
  65. x /= prime;
  66. }
  67. factors.emplace_back(prime, count);
  68. }
  69. return factors;
  70. }
  71.  
  72. void generateDivisors(const vector<pair<ll, ll>> &factors, vector<ll> &divisors, ll current = 1, int index = 0)
  73. {
  74. if (index == factors.size())
  75. {
  76. divisors.push_back(current);
  77. return;
  78. }
  79. ll prime = factors[index].first;
  80. ll exp = factors[index].second;
  81.  
  82. for (int i = 0; i <= exp; i++)
  83. {
  84. generateDivisors(factors, divisors, current, index + 1);
  85. current *= prime;
  86. }
  87. }
  88.  
  89. int main()
  90. {
  91. ios::sync_with_stdio(false);
  92. cin.tie(nullptr);
  93.  
  94. ld a,b,c,d;
  95. cin>>a>>b>>c>>d;
  96. if((b-a) == (c-b) && (c-b) == (d-c))
  97. {
  98. cout<< d + (b-a);
  99. }
  100. else if((b / a) == (c / b) && (d / c) == (c / b) )
  101. {
  102. if((d * (b /a))>1)
  103. {
  104. cout<< d * (b /a);
  105. }
  106. }
  107. else
  108. {
  109. cout<< 42 << endl;
  110. }
  111. return 0;
  112. }
  113.  
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
42