Задача А.
#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.