Програмування 2013





program zad1;
var
A,B: array [1..100] of integer;
i,j, par,N : integer;
input, output: Text;
begin
  Assign (input,'input.txt');
  Reset (input);
  readln (input,N);//
for I:=1 to N do // запись данных в масив
  readln (input,A[i],B[i]);
for I:=1 to N-1 do // сортировка за убыванием
   for j:=i+1 to N do
     if A[i]< A[j] then
             begin
              par:=A[j];
              A[j]:=A[i];
              A[i]:=par;
             end;
for I:=1 to N-1 do // сортировка за убыванием
   for j:=i+1 to N do
     if B[i]< B[j] then
             begin
              par:=B[j];
              B[j]:=B[i];
              B[i]:=par;
             end;
Assign (output,'output.txt');
Rewrite (output);         
Write (output,A[1],' ',B[1],' ',A[N],' ',B[N]);
Close(input);
Close(output);
end.

2. Олімпіада

В  І турі Інтернет - олімпіади з програмування n учнів всі задачі розв’язали вірно, але час виконання завдань у них усіх був різний: Х1, Х2, Х3…Хn, (Хі – натуральне число, час виконання роботи і – тим учасникомn <20 ). Як виявилося, у тих, хто впорався з завданням швидше, і розв’язок завдань був ефективнішим. Завдання можна було розв’язувати протягом двох днів.
Завдання. Журі олімпіади необхідно вибрати чотирьох програмістів з кращими результатами для участі у ІІ турі олімпіади, при цьому також необхідно вказати номера, під якими вони брали участь  в олімпіаді.
Формат вхідних даних.  У файлі input.txt  у першому рядку - кількість учнів, які все виконали, у n інших  рядках - результати: Х1, Х2, Х3…Хn

Формат вихідних даних. : У файлі output.txt  4 рядка, кожний містить по два числа через пробіл: перше число в рядку – один з кращих результатів, друге число – номер учасника олімпіади, який має цей результат.

program zad2;
var
A,B: array [1..100] of integer;
i,j, par,N,par_i : integer;
input, output: Text;
begin
  Assign (input,'input.txt');
  Reset (input);
  
  read (input,N);//
  
 for I:=1 to N do // запись данных в масив
  begin
  read (input,A[i]);
  B[i]:=i;
  end;
  for I:=1 to N-1 do // сортировка за 
  
   for j:=i+1 to N do
     if A[i]> A[j] then
             begin
              par:=A[j];
              A[j]:=A[i];
              A[i]:=par;
              Par_i:=B[j];
              B[j]:=B[i];
              B[i]:=par_i;
             end;
  Assign (output,'output.txt');
  Rewrite (output);         
   
   for I:=1 to 4 do // вывод отсортированых данных
      Writeln (output,A[i],' ',B[i]);

    Close(input);
    Close(output);

end.


«Клякса»

program pryam1;                                                              
var xm,ym, xMax,yMax: longint;                                                
x,y:array[1..100] of longint;                                               
n,i:byte;                                                                    
begin                                                                       
assign(Input,'Input.txt');                                                  
reset(Input);                                                               
readln(n);                                                                  
For i:=1 to n do                                                            
readln(x[i],y[i]);                                                          
xMax:= x[1];                                                                 
yMax:= y[1];                                                                
xm:= x[1];                                                                  
ym:= y[1];                                                                   
For i:=1 to n do                                                            
begin                                                                        
if (x[i]>xMax) then xMax:=x[i];                                              
if (x[i]<xm) then xm:=x[i];                                                 
if (y[i]>yMax) then yMax:=y[i];                                             
if (y[i]<ym) then ym:=y[i];                                                 
end;                                                                         ­
close(Input);                                                               
assign(Output,'Output.txt');                                                
rewrite(Output);                                                             
writeln(xMax,' ',yMax,' ',xm,' ',ym);                                       
close(Output);                                                              
 end.                                                                         
    

  Задача №2
Олімпіада
program olimp;                                                               
var x: array[1..100] of integer;                                              
a,b:array[1..4] of integer;                                                
i,p,j,k,amax,c,d,n:integer;                                                  
begin                                                                         
assign(input,'input.txt');                                                   
assign(output,'output.txt');                                                 
reset(input);                                                                
rewrite(output);                                                             
readln(n);                                                                   
for i:=1 to n do  readln(x[i]);                                              
    for i:=1 to 4 do                                                          
    begin                                                                    
    a[i]:=x[i];                                                              
    b[i]:=i;                                                                  
    end;                                                                     
      begin                                                                  
        for p:=5 to n do                                                      
        begin                                                                
            amax:=a[1];         
            k:=1;                                                            
             for j:=2 to 4 do                                                 
             if (a[j]>amax) then                                             
              begin                                                          
              amax:=a[j]; k:=j;                                               
              end;                                                           
              if (x[p]<amax) then                                            
              begin                                                          
              a[k]:=x[p];                                                    
              b[k]:=p;                                                       
              end;                                                           
          end;                                                                
      end;                                                                   
      begin                                                                  
      for i:=1 to 3 do                                                        
            if (a[i]>=a[i+1]) then                                           
             begin                                                           
               c:=a[i];                                                       
               a[i]:=a[i+1];
               a[i+1]:=c;                                                   
               d:=b[i];                                                      
               b[i]:=b[i+1];                                                  
               b[i+1]:=d;                                                    
               end;                                                          
      end;                                                                    
      begin                                                                  
            for i:=1 to 4 do                                                 
            writeln('a[i]=',a[i],' ','b[i]=',b[i],' ');                      
       end;                                                                   
        close(input);
        close(output);                                                       
end.                                                                                                                                                        
Задача  №3
Рекорд
var b:array[1..100] of real;                                                
a: array[1..100] of integer;                                                 
Z,V,C,s,z1,c1:real;                                                         
i,j,n,m,L:integer;                                                           
up:boolean;                                                                  
begin                                                                        
assign(input,'input.txt');                                                   
assign(output,'output.txt');                                                 
reset(input);                                                                
rewrite(output);                                                              
readln(n);                                                                   
up:=true;                                                                    
for i:=1 to n-1 do readln(b[i]);                                              
readln(Z);                                                                   
readln(V);                                                                   
read(C);                                                                    
s:=0;                                                                        
L:=0;                                                                        
for i:=1 to n-1 do s:=s+b[i];                                                
z1:=s/V;                                                                      
if (z1>T) then writeln ('rekorda net') 
else                                                                        
begin                                                                   
c1:=0;                                                                  
m:=0;                                                                   
i:=1;                                                                   
while (i<n-1) and (z1<Z) and up do                                       
if  (b[i]/10<=K)  then                                                 
begin                                                                  
if (c1< b[i]/10) then                                               
begin                                                               
z1:=z1+1/6;                                                        
c1:=C;                                                             
L:=L+1;                                                             
b[L]:=i;                                                           
end                                                                 
else c1:=c1-b[i]/10;                                                
i:=i+1;                                                              
end                                                                    
else                                                                     
begin                                                                 
up:=false;
 m:=m+1;                                                              
 if (m>0) then                                                        
 writeln('ne doedit');                                                    
 readln;                                                                   
 close(input);                                                            
 close(output);                                                           
 exit;                                                                     
  end;                                                                 
    if (z1<=Z) then                                                          
    writeln('rekord est')                                                   
  else                                                                     
     writeln('rekorda net');                                               
end;                                                                        
close(input);                                                               
close(output);                                                              

end.                                                                         

Немає коментарів:

Дописати коментар