Pagini recente » Cod sursa (job #2533908) | Cod sursa (job #867782) | Cod sursa (job #2653369) | Cod sursa (job #1884462) | Cod sursa (job #2079099)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("nunta.in");
ofstream g("nunta.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()
{
vector<int> a(210), b(210), d(210);
int i, x, N;
f>>N;
b.at(1)=1; b.at(0)=1;
d.at(0)=1; d.at(1)=1;
for(i=2; i<=N; i++)
if(i%3==0){b.push_back(0);
b=S(a, d);}
else {if(i%3==1){d.push_back(0);
d=S(a, b);}
else {a.push_back(0);
a=S(b, d);}}
if(N%3==0)for(i=b.at(0); i>=1; i--)g<<b.at(i);
else {if(N%3==1) for(i=d.at(0); i>=1; i--)g<<d.at(i);
else for(i=a.at(0); i>=1; i--)g<<a.at(i);}
return 0;
}