Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include <iostream>
- #include <vector>
- #include <stdio.h>
- #include <iomanip>
- using namespace std;
- #define ll long double
- struct ECUACION
- {
- /**
- Para ecuaciones de la forma:
- x = p*A + q*B;
- **/
- ll x, p, q;
- };
- int main()
- {
- vector <ll> a, b, v;
- a = {1, 0};
- b = {0, 1};
- for(int i=1; i<5000; i++)
- {
- a.push_back((a[i]+a[i-1]));
- b.push_back((b[i]+b[i-1]));
- }
- v = vector <ll> (a.size());
- ll posI, valI, posJ, valJ, posN;
- cin >> posI >> valI >> posJ >> valJ >> posN;
- ///Convertir a 0-indexed
- if(posI > posJ)
- {
- swap(posI, posJ);
- swap(valI, valJ);
- }
- ll menorVal = min(posN, min(posI, posJ));
- posI += (-menorVal);
- posJ += (-menorVal);
- posN += (-menorVal);
- v[posI] = valI;
- v[posJ] = valJ;
- ECUACION eq1;
- eq1.x = v[posI];
- eq1.p = a[posI];
- eq1.q = b[posI];
- ECUACION eq2;
- eq2.x = v[posJ];
- eq2.p = a[posJ];
- eq2.q = b[posJ];
- ll numeradorA = (eq1.x*eq2.q) - (eq2.x*eq1.q);
- ll denominadA = (eq1.p*eq2.q) - (eq2.p*eq1.q);
- ll A = numeradorA/denominadA;
- ll numeradorB = (eq2.x - (eq2.p*A));
- ll denominadB = eq2.q;
- ll B = numeradorB/denominadB;
- ll resN = A*a[posN] + B*b[posN];
- cout << setprecision(200) << resN << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment