Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Неправильно выводит в файл, выводит всегда 0 (http://www.tehnari.ru/f41/t81707/)

gazon 06.12.2012 20:47

Неправильно выводит в файл, выводит всегда 0
 
Вложений: 1
const
MaxN1 = 20;
MaxN2 = 20;
MaxN3 = 20;
MaxV = MaxN1+2*MaxN2+MaxN3;
MaxC = 2*MaxN2;
var
a:array [0..MaxV, 1..MaxV] of byte;
Ka:array [0..MaxV] of integer;
c,f,cf: array [0..MaxV, 0..MaxV] of shortint;
i,j, Finish: integer;
ia:array [0..MaxV, 1..MaxV] of shortint;
Kia:array [0..MaxV] of integer;
Max: longint;
const
MaxP=127;
var
N1:0..MaxN1;
N2:0..MaxN2;
N3:0..MaxN3;
cn,np,N,k,tn,all:byte;
input,output: text;
Procedure InputData;
begin
assign(input,'is1131.in');
reset(input);
readln(input,N1,N2,N3);
Finish:=N1+2*N2+N3+1;
All:=N1+N2+N3;
for i:=0 to Finish do
begin
for j:=1 to MaxC do a[i,j]:=0;
ka[i]:=0;
end;
ka[0]:=N1;
for i:=1 to N1 do
begin
a[0,i]:=i;
c[0,i]:=i;
end;
for i:=1 to N2 do
begin
readln(input,cn);
a[N1+i,1]:=all+i;
c[N1+i,all+i]:=cn;
ka[N1+i]:=1;
end;
for i:=1 to N1 do
begin
read(input,k);
ka[i]:=k;
for j:=1 to k do
begin
read(input,a[i,j]);
c[i,a[i,j]]:=MaxP;
end;
end;
for i:=1 to N2 do
begin
read(input,k);
ka[all+i]:=k;
for j:=1 to k do
begin
read(input,np);
a[all+i,j]:=np;
c[all+i,a[all+i,j]]:=MaxP;
end;
readln(input);
end;
N:=N1+N2;
for i:=1 to N3 do
begin
ka[N+i]:=1;
a[N+i,1]:=Finish;
c[N+i,Finish]:=1;
end;
close(input);
end;
Procedure OutputData;
begin
assign(output,'is1131.out');
rewrite(output);
Max:=0;
for i:=1 to N1 do
Max:=Max+f[0,i];
writeln(output,Max);
close(output);
end;
Begin
InputData;
OutputData;
End.

duc 06.12.2012 20:55

Брр, а где заполняется массив f?

Vladimir_S 07.12.2012 09:33

Цитата:

Сообщение от duc (Сообщение 829888)
Брр, а где заполняется массив f?

Да уж, что "брр", то "брр"... А где постановка задачи?

gazon 07.12.2012 13:55

Известная на весь Могилев компания "Headache" выпустила игру, для которой необходима конструкция, состоящая из маленьких платформ и труб. Платформы разделяются на стартовые (их N1 штук), финишные (N3 штук) и промежуточные (N2 штук). Все стартовые платформы находятся на одинаковой высоте. Финишные платформы также находятся на одинаковой высоте. Все высоты промежуточных платформ различны. Они меньше высоты стартовых, но больше высоты финишных. Каждой платформе соответствует уникальный номер от 1 до N1+N2+N3. Нумерация следующая: сначала все стартовые платформы, затем промежуточные и, наконец, финишные. Все промежуточные платформы пронумерованы по убыванию высоты. То есть, если номер промежуточной платформы A меньше номера платформы B, то высота A больше высоты B.
На каждой из стартовых платформ находится шарик. Шарик может скатиться с платформы A на платформу B, если они соединены трубой, и высота A больше высоты B. На каждой из финишных платформ может оказаться не более одного шарика. Если шарик находится на некоторой платформе, то игрок может выбрать направление дальнейшего пути шарика, т.е. выбрать платформу, на которую шарик скатится. Также для каждой промежуточной платформы задано число C, равное максимальному количеству шариков, которые могут прокатиться по ней за время игры. Цель игры заключается в том, чтобы на финишных платформах оказалось как можно больше шариков.
Вам нужно узнать, какое максимальное количество шариков может оказаться на финишных платформах в результате игры.

Ввод
Во входном файле input.in находятся информация о конструкции в следующей форме:

N1 N2 N3
CN1+1
...
CN1+N2
K1 A[1,1] ... A[1,K1]
K2 A[2,1] ... A[2,K2]
...
KN1+N2 A[N1+N2,1] ... A[N1+N2,KN1+N2]
где числа N1, N2, N3 - соответственно количество стартовых, промежуточных и финишных платформ. Cj - максимальное количество шариков, которые могут прокатиться по промежуточной платформе с номером j (N1+1 <= j <= N1+N2) за все время игры. Кi - количество труб, выходящих из платформы с номером i (1 <= i <= N1+N2). Элементы массива A, перечисленные в строке, являются номерами платформ, на которые может скатиться шарик с соответствующей платформы.

Ограничения
Все числа на вводе целые.
0<N1,N3<51
1<N1+N2+N3<201
0 <= Cj <= 50
Не существует труб между стартовыми платформами.
Не существует труб между финишными платформами.

Вывод
В первой строке выходного файла output.out должно находиться единственное число, равное максимальному количеству шариков, которое может оказаться на финишных платформах в результате игры.

gazon 07.12.2012 13:56

В прикрепленном файле содержатся тесты

Vladimir_S 07.12.2012 14:13

Цитата:

Сообщение от gazon (Сообщение 830149)
Известная на весь Могилев компания "Headache" выпустила игру,

Не обещаю, но если будет возможность - на выходных покопаюсь.

Vladimir_S 09.12.2012 18:10

Цитата:

Сообщение от duc (Сообщение 829888)
Брр, а где заполняется массив f?

Да, посмотрел и присоединяюсь к вопросу. Никакого заполнения массива f решительно не увидел. Отсюда и ноль на выходе.


Часовой пояс GMT +4, время: 14:38.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.