|
|
вернуться в форумПоказать все сообщения Спрятать все сообщенияjust put all the numbers in a array of boolean. var n,i,caint:longint; b:array[-100000..100000]of boolean; begin readln(n); fillchar(b,sizeof(b),false); for i := 1 to n do begin readln(caint); b[caint]:=true; end; readln(n); for i := 1 to n do begin readln(caint); if b[10000-caint] then begin writeln('YES'); halt; end; end; writeln('NO'); end. Edited by author 10.09.2009 08:34 It is O(n), not O(1) And there's another O(n) solution for this problem, which requires only O(n) memory instead of O(v) in your case, where v is max value of a_i. Yes , SkidanovAlex right. O(n). |
|
|