• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Неправильно выводит в файл, выводит всегда 0

  • Автор темы Автор темы gazon
  • Дата начала Дата начала

gazon

Новые
Регистрация
21 Ноя 2011
Сообщения
56
Реакции
0
Баллы
0
Неправильно выводит в файл, выводит всегда 0

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:=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:=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.
 

Вложения

  • t01_6.zip
    t01_6.zip
    24.3 KB · Просмотры: 31
Брр, а где заполняется массив f?
 
Известная на весь Могилев компания "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 должно находиться единственное число, равное максимальному количеству шариков, которое может оказаться на финишных платформах в результате игры.
 
В прикрепленном файле содержатся тесты
 
Назад
Сверху