|
|
back to boardCommon Boardhelp!help!help! problem#1021 Posted by Alexey 5 Aug 2002 17:11 Compilation Error PROBLEM3 1021 program ViniT; var a,b:array[1..10000]of integer; u,i,j,n,k:integer; o:boolean; procedure swap(var a,b:integer); var t:integer; begin t:=a; a:=b; b:=t; end; procedure qsort(m,l:integer); var i,j,k:integer; begin k:=a[(m+l)div 2]; i:=m;j:=l; repeat while a[i]<k do inc(i); while a[j]>k do dec(j); if i<=j then begin swap(a[i],a[j]);dec(j);inc(i);end; until i>j; if m<j then qsort(m,j); if l>i then qsort(i,l); end; procedure init; begin read(n); for i:=1 to n do read(a[i]); read(k); for i:=1 to k do read(b[i]); qsort(1,n); end; function find(m,l:integer):boolean; var k:integer; begin if m=l then find:=u+a[m]=10000 else begin k:=(m+l)div 2; if u+a[k]<10000 then find:=find(k+1,l) else if u+a[k]>10000 then find:=find(m,k-1) else find:=true; end; end; procedure solve; begin o:=false; for i:=1 to k do begin u:=b[i]; o:=find(1,n); if o then i:=k; end; end; procedure print; begin if o then write('YES')else write('NO'); end; begin init; solve; print; end. |
|
|