Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 06.12.2012, 20:47   #1 (permalink)
gazon
Member
 
Регистрация: 21.11.2011
Сообщений: 56
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Неправильно выводит в файл, выводит всегда 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[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.
Вложения
Тип файла: zip t01_6.zip (24.3 Кб, 17 просмотров)
gazon вне форума   Ответить с цитированием

Старый 06.12.2012, 20:47
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обратите внимание на содержимое данных ссылок, это может раскрыть глаза на решение проблемы

Не выводит массив Delphi7
Ноутбук не выводит изобажение на монитор
Программа выводит результат бесконечное число раз. Не ясна причина

Старый 06.12.2012, 20:55   #2 (permalink)
duc
Banned
 
Регистрация: 23.11.2010
Сообщений: 6,761
Сказал(а) спасибо: 18
Поблагодарили 27 раз(а) в 6 сообщениях
Репутация: 17514
По умолчанию

Брр, а где заполняется массив f?
duc вне форума   Ответить с цитированием
Старый 07.12.2012, 09:33   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 290
Поблагодарили 512 раз(а) в 169 сообщениях
Репутация: 93301
По умолчанию

Цитата:
Сообщение от duc Посмотреть сообщение
Брр, а где заполняется массив f?
Да уж, что "брр", то "брр"... А где постановка задачи?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 07.12.2012, 13:55   #4 (permalink)
gazon
Member
 
Регистрация: 21.11.2011
Сообщений: 56
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Известная на весь Могилев компания "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   #5 (permalink)
gazon
Member
 
Регистрация: 21.11.2011
Сообщений: 56
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

В прикрепленном файле содержатся тесты
gazon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 07.12.2012, 14:13   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 290
Поблагодарили 512 раз(а) в 169 сообщениях
Репутация: 93301
По умолчанию

Цитата:
Сообщение от gazon Посмотреть сообщение
Известная на весь Могилев компания "Headache" выпустила игру,
Не обещаю, но если будет возможность - на выходных покопаюсь.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 09.12.2012, 18:10   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 290
Поблагодарили 512 раз(а) в 169 сообщениях
Репутация: 93301
По умолчанию

Цитата:
Сообщение от duc Посмотреть сообщение
Брр, а где заполняется массив f?
Да, посмотрел и присоединяюсь к вопросу. Никакого заполнения массива f решительно не увидел. Отсюда и ноль на выходе.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.