Вітаю Вас, Гість

Задача А.

#include <iostream>
using namespace std;

int main()
{
    int x1, y1, x2, y2;
    cin>>x1>>y1>>x2>>y2;
    if (x1<x2)
        cout<<x1<<" "<<y2<<" "<<x2<<" "<<y1<<endl;
    else
        cout<<x2<<" "<<y1<<" "<<x1<<" "<<y2<<endl;
    return 0;
}

 

Задача В.

program problem_B;
uses sysutils;
var f1,f2:text;
    s:string;
    aud,vid: integer;
begin
  Assign (f1,'media.dat');
  ReSet (f1);
  aud:=0;  //ініціалізація лічильників
  vid:=0;
  while not eof(f1) do begin
     readln(f1,s);
     s:=rightstr(s,3); //відокремлюємо 3 останні знаки
     if (s='wav') or (s='mp3') then aud:=aud+1;
     if (s='wmv') or (s='avi') then vid:=vid+1;
  end;
  Close (f1);
  Assign (f2,'media.sol');
  ReWrite (f2);
  //аналізуємо результат і виводимо відповідь
  if aud=vid then writeln(f2,'equal')
  else begin
         if aud>vid then writeln(f2,'audio')
         else writeln(f2,'video');
         writeln(f2,abs(aud-vid))
       end;
  Close (f2)
end.

 

Задача С.

#include <iostream>

using namespace std;

int main()
{
    int k1, k2, k3, o1=0, o2=0, ko1=0, ko2=0;
    while ((o1<51)&&(o2<51))
    {
        cin>>k1>>k2>>k3;
        if (((k1+k2+k3)%5==0)&&(o1+(k1+k2+k3)/5<=51)&&(k1+k2+k3!=0))
            {
                o1+=(k1+k2+k3)/5;
                ko1++;
            }
        if (o1!=51)
        {
            cin>>k1>>k2>>k3;
            if (((k1+k2+k3)%5==0)&&(o2+(k1+k2+k3)/5<=51)&&(k1+k2+k3!=0))
                {
                    o2+=(k1+k2+k3)/5;
                    ko2++;
                    //cout<<o2<<" "<<ko2<<" "<<k1<<" "<<k2<<" "<<k3<<endl;
                }
        }
    }
    if (o1==51)
        cout<<1<<" "<<ko1<<endl;
    else
        cout<<2<<" "<<ko2<<endl;
    return 0;
}

 

Задача D.

program problem_D;
var i,j,N:integer;
    s:string;
    res:string[3];
begin
  readln (N);
  for i:=1 to N do
  begin
    readln (s);
    res:='Yes'; //відповідь (можливо зміниться)

    if not (s[1] in ['*','/','+']) //чи правильний знак на початку
    then
       if not (s[length(s)] in ['-','*','/','+']) //чи правильний знак в кінці
       then begin
              for j:=1 to length(s)-1 do
              //чи правильні знаки стоять поруч?
              if (s[j] in ['-','*','/','+']) and (s[j+1] in ['-','*','/','+'])
              then begin res:='No'; break end  //знайдено недолік
            end
       else res:='No'
    else res:='No';

    writeln (res);
  end;
end.

 

Задача E.

program problem_E;
var i,j,N,kd:integer;
    s:string;
    res:string[3];
begin
  readln (N);
  for i:=1 to N do
  begin
    readln (s);
    res:='Yes';  //відповідь (можливо зміниться)
    kd:=0;       //для перевірки балансу дужок

    if not (s[1] in ['*','/','+',')']) //чи допустимий знак на початку?
    then
       if not (s[length(s)] in ['-','*','/','+','('])  //чи допустимий знак у кінці?
       then begin
              for j:=1 to length(s)-1 do begin //аналізуємо структуру рядка
                //контроль балансу дужок
                if s[j]='(' then kd:=kd+1
                else if s[j]=')' then kd:=kd-1;

                    //чи немає двох знаків дій, розміщених поруч
                    //або знака дії і закритої дужки
                if  (s[j] in ['-','*','/','+']) and (s[j+1] in ['-','*','/','+',')'])
                    //чи немає знака дії зразу після відкритої дужки
                    or (s[j]='(') and (s[j+1] in ['*','/','+',')'])
                    //чи немає відкритої дужки після цифри
                    //або зразу після закритої дужки
                    or (s[j] in ['0'..'9',')']) and (s[j+1] in ['('])
                    //чи не більше закритих дужок, ніж відкритих
                    or (kd<0)
                then begin res:='No'; break end //фіксуємо недолік
              end;
              if s[length(s)]=')' then kd:=kd-1; //обробляємо останню дужку
              if kd>0 then res:='No'             //уточнюємо баланс дужок
            end
       else res:='No'
    else res:='No';

    writeln (res);
  end;
end.