Pagini recente » Cod sursa (job #1479348) | Cod sursa (job #2747444) | Istoria paginii runda/trainingtsa/clasament | Cod sursa (job #91881) | Cod sursa (job #1410265)
#include <fstream>
using namespace std;
#define maxN 210
ifstream fin("nunta.in");
ofstream fout("nunta.out");
class bigNumber{
public:
char C[maxN];
long cnt;
bigNumber(){
for(long i=0;i<maxN;i++) C[i]=0;
C[1] = 1; cnt=1;
}
void operator+(bigNumber& who){
cnt = max(cnt,who.cnt);
for(long i=1;i<=cnt;i++) C[i] += who.C[i];
for(long i=1;i<=cnt;i++){
C[i+1] += C[i]/10;
C[i] %= 10;
}
if(C[cnt+1]) cnt++;
}
void write(){
for(long i=cnt;i;i--) fout << (int)C[i];
}
};
long n,i,s,d;
long C[2][maxN];
inline void addV(long d,long s){
C[d][0] = max(C[d][0],C[s][0]);
long i;
for(i=1;i<=C[d][0];i++) C[d][i]+=C[s][i];
for(i=1;i<=C[d][0];i++){
C[d][i+1] += C[d][i]/10;
C[d][i] %= 10;
}
if(C[d][C[d][0]+1]) C[d][0]++;
}
int main()
{
fin >> n ; fin.close();
C[0][0] = C[0][1] = 1;
C[1][0] = C[1][1] = 1;
for(i=2;i<maxN;i++) C[0][i]=C[1][i]=0;
s=0;d=1;
for(i=2;i<=n;i++){
s^=1;d^=1;
addV(d,s);
}
for(i=C[d][0];i;i--) fout << C[d][i];
fout.close();
return 0;
}