В социальной сети "друзьяшки" есть публиковать записи, делать репост (размещать чужую...

0 голосов
64 просмотров

В социальной сети "друзьяшки" есть публиковать записи, делать репост (размещать чужую запись на своей странице) и ставить лайки. В "друзьяшках" каждый репост считается отдельной записью и его, в свою очередь, могут репостить другие пользователи. Вася опубликовал популярную запись, которая широко разошлась по соцсети. Пользователи соцсети могут ставить лайк к записи, при этом если запись является репостом, то этот лайк отображается не только у того пользователя, которому он был поставлен, но и у пользователя, с чьей страницы был сделан репост и так далее до самой исходной записи.

Например, если пользователь А опубликовал запись, репост которой сделали пользователи Б и В, а пользователь Г сделал репост записи пользователя Б, то лайк, поставленной записи пользователя Г, будет отображен у пользователей Г, Б и А (но не В).

Пете очень понравился пост Васи. К сожалению, в "друзьяшках" можно ставить только один лайк в день, зато этот лайк отображается во всех записях, которые, находятся выше по дереву лайков. Поэтому Петя хочет поставить свой единственный лайк так, чтобы он был отображен у как можно большего количества пользователей. Помогите ему выбрать запись, которой нужно поставить такой лайк.

напишите программу на паскале


Информатика (22 баллов) | 64 просмотров
Дан 1 ответ
0 голосов

Const Sz = 1000; var   a: array [1..Sz] of integer;  b: array [1..Sz] of integer;  c: array [1..Sz] of integer;  d: array [1..Sz] of integer;  M: integer;  N: integer;  i: integer;  k: integer;begin  read(M);  readln(N);  for i:=1 to N do begin    read(a[i]);    readln(b[i]);    if (a[i]<>0) then c[i]:=1 else c[i]:=0;    end;  for i:=1 to N do begin  if(c[i]<>0) then begin  for k:=1 to i do begin  if(d[k]=0) then d[i]:=1;  if (c[k]=i) then d[k]:=0;   end;   writeln(d[i])  end;end;end.

(18 баллов)
0

Тут как-то так получается но она не так как надо выводит

0

кто-то смог доделать?