Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("culori2.in");
- ofstream fout("culori2.out");
- typedef int NrMare[10001];
- int n;
- NrMare A, B, C, D, E, Av, Bv, Cv, Dv, Ev;
- void Atrib(NrMare A, int n)
- {
- A[0] = 0;
- do
- A[++A[0]] = n % 10, n = n / 10;
- while(n);
- }
- void Atrib(NrMare A, NrMare B)
- {
- for(int i = 0; i <= B[0]; i++)
- A[i] = B[i];
- }
- void Suma(NrMare S, NrMare A, NrMare B)
- {
- S[0] = max(A[0], B[0]);
- int t = 0;
- for(int i = 1; i <= S[0]; i++)
- {
- int x = A[i] + B[i] + t;
- S[i] = x % 10;
- t = x / 10;
- }
- while(t)
- S[++S[0]] = t % 10, t = t / 10;
- }
- void Afisare(NrMare A)
- {
- for(int i = A[0]; i > 0; i--)
- fout << A[i];
- }
- int main()
- {
- fin >> n;
- if(n < 45)
- {
- long long A = 1, B = 1, C = 1, D = 1, E = 1, Av, Bv, Cv, Dv, Ev;
- Av = 1, Bv = 1, Cv = 1, Dv = 1, Ev = 1;
- for(int i = 1; i < n; i++)
- {
- A = Bv;
- B = Av + Cv;
- C = Bv + Dv;
- D = Cv + Ev;
- E = Dv;
- Av = A, Bv = B, Cv = C, Dv = D, Ev = E;
- }
- fout << A + B + C + D + E;
- }
- else
- {
- Atrib(A, 1), Atrib(B, 1), Atrib(C, 1), Atrib(D, 1), Atrib(E, 1);
- for(int i = 1; i < n; i++)
- {
- Atrib(Av, A);
- Atrib(Bv, B);
- Atrib(Cv, C);
- Atrib(Dv, D);
- Atrib(Ev, E);
- Atrib(A, Bv);
- Suma(B, Av, Cv);
- Suma(C, Bv, Dv);
- Suma(D, Cv, Ev);
- Atrib(E, Dv);
- }
- Suma(Av, A, B);
- Suma(Bv, C, D);
- Suma(Cv, Av, Bv);
- Suma(Dv, Cv, E);
- Afisare(Dv);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement