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

Задача А
#include <iostream>
using namespace std;
int main()
{
    int n,maxp,x,y,t1,t2,t3;
    cin>>n>>t1>>t2>>t3;
    maxp=0;
    int m[100];
     for(int i=0;i<=99;i++)
    {
        m[i]=0;
    }
    for(int i=1;i<=n;i++)
    {
    cin>>x>>y;
    if(x>maxp) maxp=x;
    if(m[x]<y) m[x]=y;
    }
    x=n*t3;
    for(int i=1;i<=maxp;i++)
    {
        if(m[i]>0) x=x+2*(t1+t2*(m[i]-1));
    }
    cout <<x;
    return 0;
}

Задача B
#include <iostream>
using namespace std;
int main()
{
    int a,b,l,n;
    cin>>a>>b>>l>>n;
    cout << 2*(n-1)*(a+b)+2*l+a;
    return 0;
}

Задача С
#include "iostream"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <fstream>
using namespace std;
int main()
{
 ifstream fin;
 ofstream fout;
 fin.open("change.in", ios::in);
 fout.open("change.out", ios::out);
 int k,n,m[201][5],i,j,r[201]={0},min=801,t;
 fin>>k>>n;
 for(i=1;i<=k;i++)
  for(j=0;j<=4;j++)
   fin>>m[i][j];
 for(i=1;i<=k;i++)
  if(i!=n)
  {
        t=0;
   for(j=1;j<=4;j++)
   {
    r[i]=r[i]+abs(m[i][j]+m[n][j]);
    if (m[i][j]*m[n][j]<0)t=1;
   }
   if (t==0)r[i]=802;
  }
 for(i=1;i<=k;i++)
  if(i!=n && min>r[i])min=r[i];
 if (min==801)fout<<"NO"; else
 for(i=1;i<=k;i++)
  if(min==r[i] && i!=n)fout<<i<<' ';
 fout.close();
}

Задача D
program project1;
type elem = record typ:char; x1,y1,x2,y2:integer end;
var s:array [1..5] of elem;
    i,k,r:integer;

procedure swapzm (var a,b:integer);
var c:integer;
begin
  c:=a; a:=b; b:=c
end;

procedure SortH (var a:elem);
begin
  with a do
     if a.y1<a.y2
     then begin swapzm (a.x1,a.x2); swapzm (a.y1,a.y2);
          end
     else if a.y1=a.y2
          then if a.x1>a.x2
               then begin swapzm (a.x1,a.x2); swapzm (a.y1,a.y2) end;
end;

procedure SortEl;
var j,i:integer;
    p:elem;
begin
  for i:=2 to k do
  begin
     j:=i;
     while s[j].typ<s[j-1].typ do
     if j>1 then
     begin
        p:=s[j]; s[j]:=s[j-1]; s[j-1]:=p;
        j:=j-1;
      end
     else break;
   end
  end;

function max(a,b,c:integer):integer;
var m:integer;
begin
  m:=a;
  if b>m then m:=b;
  if c>m then m:=c;
  max:=m
end;

begin
 readln (k);
 for i:=1 to k do
 with s[i] do
 begin
   readln(typ,x1,y1,x2,y2);
   if typ='W'
   then if y1=y2 then typ:='T'
        else if x1<>x2 then typ:='S';
   SortH (s[i])
 end;

 SortEl;

 case k of
   1: if s[1].typ='L' then r:=22
      else r:=12;
   2: case s[1].typ of
         'L': if s[2].typ='R' then r:=19
              else r:=8;
         'R': if s[2].typ='R' then r:=10
              else if s[2].y1=s[1].y1 then r:=21
                                      else r:=31;
         'T': if s[1].x1=s[2].x1 then r:=4
                                 else r:=23;
         'S': if s[1].x1=s[2].x1 then r:=16
              else if s[1].y2=s[2].y2 then r:=26
                   else r:=24;
      end;
   3: case s[1].typ of
        'W': r:=13;
        'R': if s[2].typ='R' then r:=3
             else r:=2;
        'L': if s[2].typ='R' then r:=25
             else r:=33;
        'S': if s[2].typ='S'
             then if s[3].typ='W'
                  then if s[2].y1=s[1].y2 then r:=15
                       else r:=9
                  else if s[3].y1=s[2].y2 then r:=6
                       else r:=1
             else if s[2].typ='T' then r:=5
                  else r:=11;
        'T': if s[2].y1=s[1].y1 then r:=20
             else if s[1].x2>max(s[2].x1,s[3].x1,0)
                  then r:=27
                  else if s[3].y2=s[2].y2 then r:=18
                       else r:=28
      end;
   4: if s[1].typ='L' then r:=32
      else if s[2].typ='S' then r:=17
           else if s[1].typ='S' then r:=14
                else if s[2].typ='T' then r:=7
                     else if s[1].x2=max(s[2].x1,s[3].x1,s[4].x1)
                          then r:=29
                          else r:=30
 end;

 writeln (r)
end.

Задача Е

program sticks;
type toch = record x,y:integer end;
 vidr = record p,k,c:toch end;

operator = (t1, t2 : toch) b : boolean;
begin
 b:=(t1.x=t2.x) and (t1.y=t2.y)
end;

var g,v,t:vidr;
 m:toch;
 rez:integer;

begin
 readln (g.p.x,g.p.y,g.k.x,g.k.y,v.p.x,v.p.y,v.k.x,v.k.y);
 if g.p.x=g.k.x
 then begin
 t:=g; g:=v; v:=t
 end;
 if g.p.x>g.k.x
 then begin
 m:=g.p; g.p:=g.k; g.k:=m
 end;
 if v.p.y<v.k.y
 then begin
 m:=v.p; v.p:=v.k; v.k:=m
 end;
 g.c:=g.p; g.c.x:=(g.k.x+g.p.x) div 2;
 v.c:=v.p; v.c.y:=(v.k.y+v.p.y) div 2;

 rez:=0;
 if g.p=v.k then rez:=1;
 if g.p=v.p then rez:=2;
 if g.c=v.p then rez:=3;
 if g.c=v.c then rez:=4;
 if g.c=v.k then rez:=5;

 writeln (rez);
end.