Cod sursa(job #2083600)
Utilizator | Data | 7 decembrie 2017 21:25:02 | |
---|---|---|---|
Problema | Buline | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.87 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("culori3.in");
ofstream g("culori3.out");
vector<int> S(vector<int> a, vector<int> b)
{
vector<int> c(210);
int i;
if(a.at(0)>b.at(0))for(i=1; i<=a.at(0); i++){if(a.at(i)+b.at(i)>=10){ c.push_back(0);
c.at(i)=(a.at(i)+b.at(i))%10;
if(i==a.at(0)){a.at(0)++;
a.push_back(0);}
a.at(i+1)++;}
else {c.push_back(0);
c.at(i)=a.at(i)+b.at(i);}}
else for(i=1; i<=b.at(0); i++){if(a.at(i)+b.at(i)>=10){ c.push_back(0);
c.at(i)=(a.at(i)+b.at(i))%10;
if(i==b.at(0)){b.at(0)++;
b.push_back(0);}
b.at(i+1)++;}
else {c.push_back(0);
c.at(i)=a.at(i)+b.at(i);}}
if(a.at(0)>b.at(0))c.at(0)=a.at(0);
else c.at(0)=b.at(0);
return c;
}
int main()
{
long unsigned N, i;
f>>N;
vector<int> v1(5001), v2(5001), v3(5001), v4(5001), v5(5001), v6(5001), v7(5001), v8(5001), v9(5001), v10(5001), v(5001);
v1.at(0)=1; v2.at(0)=1; v3.at(0)=1; v4.at(0)=1; v5.at(0)=1; v1.at(1)=1; v2.at(1)=1; v3.at(1)=1; v4.at(1)=1; v5.at(1)=1;
for(i=1; i<=N; i++)
if(i%2==1){v6.push_back(0);
v6=v2;
v7.push_back(0);
v7=S(v1, v3);
v8.push_back(0);
v8=S(v2, v4);
v9.push_back(0);
v9=S(v3, v5);
v10.push_back(0);
v10=v4;}
else{v1.push_back(0);
v1=v7;
v2.push_back(0);
v2=S(v6, v8);
v3.push_back(0);
v3=S(v7, v9);
v4.push_back(0);
v4=S(v8, v10);
v5.push_back(0);
v5=v9;}
if(N%2==0) {v=S(v9, v10);
v=S(v8, v);
v=S(v7, v);
v=S(v6, v);}
else {v=S(v4, v5);
v=S(v3, v);
v=S(v2, v);
v=S(v1, v);}
for(i=v.at(0); i>=1; i--) g<<v.at(i);
return 0;
}