M00PAIR - 0 0 Pairs
Tác giả: ladpro98
Ngôn ngữ: Pascal
program m00pair;
uses math;
type big=ansistring;
const maxn=1001;
fi='';
var f:array[1..maxn] of big;
n,i:longint;
inp:text;
function sum(a,b:big):big;
var x,y,s,carry,i:longint;
c:big;
begin
if length(a)<length(b) then c:=b
else
c:=a;
carry:=0;
while length(a)<length(b) do a:='0'+a;
while length(b)<length(a) do b:='0'+b;
for i:=length(a) downto 1 do
begin
x:=ord(a[i])-48;
y:=ord(b[i])-48;
s:=x+y+carry;
carry:=s div 10;
c[i]:=chr(s mod 10 + 48);
end;
if carry>0 then c:='1'+c;
exit(c);
end;
procedure dp(i:longint);
var j:longint;
begin
if i>n then
begin
for j:=n+1 to i do
f[j]:=sum(f[j-1],sum(f[j-2],f[j-2]));
n:=i;
end;
end;
begin
assign(inp,fi);
reset(inp);
f[1]:='0';f[2]:='1';n:=2;
while not eof(inp) do
begin
readln(inp,i);
dp(i);
writeln(f[i]);
end;
close(inp);
end.