Você está na página 1de 2

type bignum=ansistring;

const fi='next.inp';
fo='next.out';
var a,b,c,d,max:bignum;
m,n,k,k1,k2,k3:longint;
f:text;
procedure nhap;
begin
assign(f,fi);
reset(f);
readln(f,a);
readln(f,b);
read(f,c);
close(f);
end;
function SoSanh(a,b:bignum):integer;
begin
while length(a)<length(b) do a:='0'+a;
while length(a)>length(b) do b:='0'+b;
if a=b then exit(0);
if a>b then exit(1);
if a<b then exit(-1);
end;

function Tong(a,b:bignum):bignum;
var S,i,x,y,n:integer;
begin
n:=0;
Tong:='';
while length(a)<length(b) do a:='0'+a;
while length(a)>length(b) 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+n;
n:=S div 10;
Tong:=concat(chr(S mod 10+48),Tong);
end;
if n>0 then Tong:='1'+tong;
end;

function Hieu(a,b:bignum):bignum;
var S,i,n:integer;
begin
n:=0;
Hieu:='';
while length(a)<length(b) do a:='0'+a;
while length(a)>length(b) do b:='0'+b;
for i:= length(a) downto 1 do
begin
S:=ord(a[i])-ord(b[i])-n;
if S<0 then
begin
inc(S,10);
n:=1;
end else n:=0;
Hieu:=chr(S+48)+Hieu;
end;
while (length(Hieu)>1) and (Hieu[1]='0') do delete(Hieu,1,1);
end;
procedure xuli;
begin
assign(f,fo);
rewrite(f);
if sosanh(a,b)=1 then max:=a else max:=b;
if sosanh(c,max)=1 then max:=c;
k1:=pos('?',a); k2:=pos('?',b); k3:=pos('?',c);
//tinh huong c lon nhat va a hoac b chua dau ?
if (c=max)and (k3=0) then
begin
if k1<>0 then d:=hieu(c,b) else d:=hieu(c,a);
if k1<>0 then write(f,d[k1]) else write(f,d[k2]);
end;
// b lon nhat; c hoac a
if (b=max)and (k2=0) then
begin
if k1<>0 then d:=hieu(b,c) else d:=hieu(b,a);
if k1<>0 then write(f,d[k1]) else write(f,d[k3]);
end;
// a lon nhat ; b hoac c
if (a=max)and (k1=0) then
begin
if k2<>0 then d:=hieu(c,c) else d:=hieu(a,b);
if k2<>0 then write(f,d[k2]) else write(f,d[k3]);
end;

// a lon nhat va chua ?


if (a=max) and (k1<>0) then
begin
d:=tong(b,c);
write(f,d[k1]);
end;
// b lon nhat va chua ?
if (b=max) and (k2<>0) then
begin
d:=tong(a,c);
write(f,d[k2]);
end;
// c lon nhat va chua ?
if (c=max) and (k3<>0) then
begin
d:=tong(a,b);
write(f,d[k3]);
end;
close(f);
end;
begin
nhap;
xuli;
end.

Você também pode gostar