Страница 1 из 2

zadacha po ACM

Добавлено: 28 дек 2006, 18:04
Diploboy
Vsem privet. Ya rabotayu Paskale uje 2 nedeli. I est nekotoriye voprosi.
Ya nedafno rejil odno zadachu po ACM. Posle proverki, mne skazali chto - Runtime ERROR. Kto mojet mne obyasnut, chto za oshibka va proge?

Zadacha - Zadacha
[/URL]

Programma

program p2160;
var
a: array [1..6, 1..2] of integer;
b: array [1..6, 1..2] of integer;
i,j,ch,k:integer;
begin
for i:=1 to 6 do
readln(a[i,1],a[i,2]);


for i:=1 to 6 do
begin
ch:=0;
if a[i,1]>a[i,2] then begin ch:=a[i,1]; a[i,1]:=a[i,2]; a[i,2]:=ch; end;
end;

k:=0;
for i:=1 to 5 do
for j:=i+1 to 6 do
begin
if (a[i,1]=a[j,1]) and (a[i,2]=a[j,2]) then
begin
k:=k+1;
b[k,1]:=i;
b[k,2]:=j;
end;
end;

if k=3 then writeln('POSSIBLE') else writeln('IMPOSSIBLE');

end.

:D

Re: zadacha po ACM

Добавлено: 28 дек 2006, 18:21
Хыиуду
1. Пиши по-русски (если такое возможно)
2. Что должна делать программа? У меня страница с заданием не открылась, а если бы и открылась, с английского переводить неохота.
3. На какой строке выдается рантайм эррор?

Re: zadacha po ACM

Добавлено: 28 дек 2006, 19:05
Diploboy
Chto za TUPOYSKIY otvet?

Re: zadacha po ACM

Добавлено: 29 дек 2006, 11:13
Хыиуду
Diploboy писал(а):Chto za TUPOYSKIY otvet?
Ладно, какой вопрос, такой и ответ:
Kto mojet mne obyasnut, chto za oshibka va proge?
U tebya voznikla oshibka vremeni vipolneniya.
Доволен?

Re: zadacha po ACM

Добавлено: 29 дек 2006, 13:04
SergeyS

Код: Выделить всё

k:=0;
for i:=1 to 5 do
for j:=i+1 to 6 do
begin
if (a[i,1]=a[j,1]) and (a[i,2]=a[j,2]) then
begin
k:=k+1;
b[k,1]:=i;
b[k,2]:=j;
end;
end;
если у тебя условие (a[i,1]=a[j,1]) and (a[i,2]=a[j,2]) будет выполняться больше шести раз, то k у тебя будет больше 6 и соответственно будет переполнение массива:

Код: Выделить всё

b[k,1]:=i;
b[k,2]:=j;

Что нужно исправлять? думай сам

Re: zadacha po ACM

Добавлено: 29 дек 2006, 13:31
Diploboy
SergeyS писал(а):

Код: Выделить всё

Что нужно исправлять? думай сам[/quote]
Nado ispravit b: array [1..15] of integer;

Re: zadacha po ACM

Добавлено: 29 дек 2006, 13:36
somewhere
максимальное K = 6 + 5 + 4+ 3 + 2 + 1 = 21

Re: zadacha po ACM

Добавлено: 29 дек 2006, 14:27
SergeyS
Diploboy, ты хоть условие задачи изложи, а то трудно по твоему алгоритму понять что ты хочешь

Re: zadacha po ACM

Добавлено: 29 дек 2006, 14:43
Diploboy
[CENTER]Box
Time Limit:1000MS Memory Limit:65536K
Total Submit:998 Accepted:329 [/CENTER]

Description
Ivan works at a factory that produces heavy machinery. He has a simple job -- he knocks up wooden boxes of different sizes to pack machinery for delivery to the customers. Each box is a rectangular parallelepiped. Ivan uses six rectangular wooden pallets to make a box. Each pallet is used for one side of the box.
Изображение

Joe delivers pallets for Ivan. Joe is not very smart and often makes mistakes -- he brings Ivan pallets that do not fit together to make a box. But Joe does not trust Ivan. It always takes a lot of time to explain Joe that he has made a mistake.
Fortunately, Joe adores everything related to computers and sincerely believes that computers never make mistakes. Ivan has decided to use this for his own advantage. Ivan asks you to write a program that given sizes of six rectangular pallets tells whether it is possible to make a box out of them.

Input
Input consists of six lines. Each line describes one pallet and contains two integer numbers w and h (1 <= w, h <= 10 000) -- width and height of the pallet in millimeters respectively.

Output
Write a single word "POSSIBLE" to the output file if it is possible to make a box using six given pallets for its sides. Write a single word "IMPOSSIBLE" if it is not possible to do so.

Sample Input

1345 2584
2584 683
2584 1345
683 1345
683 1345
2584 683

Sample Output
POSSIBLE
:D

Re: zadacha po ACM

Добавлено: 29 дек 2006, 15:05
Хыиуду
Для работы достаточно удалить эти две строки:
b[k,1]:=i;
b[k,2]:=j;
На всякий случай поменять K=3 на K>=3