language: Pascal (gpc) (gpc 20070904)
date: 103 days 7 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program exetasi1(input,output);
        var  n,i,j,position,sum0,min : integer;
                               a : array[1..1000000] of integer;
 
begin
   readln(n);
   for i := 1 to n do read(a[i]);
   if a[1]>0 then sum0 := (a[1] + a[2])
   else if a[n]<0 then sum0 := ( a[n] + a[n - 1])
   else
   begin
      sum0 := 2*1000000000;
      for i := 1 to n do
      begin
        if a[n]>0 then position := a[n-1];
      end;
      for i := 1 to position do
      begin
         for j := (position + 1) to (n - 1) do
         begin
              if ((abs(a[j])<abs(a[i])) and (abs(a[j + 1])> abs(a[i]))) then
              begin
                if abs(a[i] + a[j])< abs(a[i] + a[j + 1]) then min := abs(a[i] + a[j])
                else min := abs(a[i] + a[j + 1])
              end;
              if abs(min)<abs(sum0) then sum0 := min
         end
       end;
       if position<=( n - 2) then 
       begin
         if (a[position + 1] + a[position + 2])<abs(sum0) then sum0 := (a[position + 1] + a[position + 2])
       end;
       if position >= 3 then 
       begin
         if abs(a[position - 1] + a[position])< abs(sum0) then sum0 := (a[position] + a[position  - 1])
       end
  end;
  writeln(sum0)
end.