Guest User

Untitled

a guest
Jan 22nd, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. struct node {
  6.     long long v, x;
  7.     node() : v(0), x(0) {}
  8.     node(long long v, long long x) : v(v), x(x) {}
  9.     node operator + (node a) {return node(v + a.v, x + a.x);}
  10. };
  11.  
  12. node a[1000010];
  13. long long f[1000010];
  14.  
  15. int main() {
  16.     long long i, j, k, x, y, l;
  17.     cin >> i >> j >> k >> x >> y;
  18.     if (i > j) {
  19.         swap(i, j);
  20.         swap(x, y);
  21.     }
  22.     a[i] = node(x, 0);
  23.     a[j] = node(y, 0);
  24.     a[i - 1] = node(0, 1);
  25.     for(l = i + 1; l < j; l++)
  26.         a[l] = a[l - 2] + a[l - 1];
  27.     f[i - 1] = (a[j - 2].v - a[j - 1].v) / (a[j - 2].x + a[j - 1].x);
  28.     f[i] = x;
  29.     f[j] = y;
  30.     if (j - i == 1)
  31.         f[i - 1] = f[j] - f[i];
  32.     if (k < i)
  33.         for(l = i - 2; l >= k; l--)
  34.             f[l] = f[l + 2] - f[l + 1];
  35.     else
  36.         for(l = i + 1; l <= k; l++)
  37.             f[l] = f[l - 2] + f[l - 1];
  38.     cout << f[k];
  39.     return 0;
  40. }
Add Comment
Please, Sign In to add comment