Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Массив?   Найти похожие ветки 

 
Chuha   (2004-01-26 17:13) [0]

Помогите разобраться, что-то не могу понять. Короче вот что надо сделать:
Задача
Ваша программа должна определять, можно ли из двух списков целых чисел выбрать по одному числу так, чтобы в сумме они составили 10000.

Исходные данные
На взоде даны два списка - один, потом другой. Формат каждого из этих списков таков: в первой строчке записано количество Ni чисел в i-том списке, далее в Ni строчках по одному числу в строке записаны сами списки. Выполняются неравенства 1 <= Ni <= 50000, все элементы списков лежат в диапазоне от –32768 до 32767. Первый список упорядочен по возрастанию, второй – по убыванию.

Результат
На выходе следует записать YES, если из списков можно выбрать по числу, которые в сумме дадут 10000 и NO в противном случае.

Пример исходных данных
4
-175
19
19
10424
3
8951
-424
-788
Пример результата
YES

Мое решени:
var a:array[1..32000]of integer;
Index,i,k:longint;
count,t:integer;
found:boolean;
begin
readln(index);
fillchar(a,sizeof(a),0);
count:=1;
for i:=1 to Index do
begin
if i=1 then
begin
readln(a[i]);
end
else
begin
readln(t);
if count=32000 then Break;
if a[count]<>t then
begin
inc(count);
a[count]:=t;
end;
end;
end;
readln(index);
for i:=1 to index do
begin
readln(t);
for k:=1 to count do
begin
if t+a[k]=10000 then
begin
Writeln("YES");
exit;
end;
end;
end;
Writeln("NO");
end.
Ноя не могу понять, ведь количество чисел может быть больше чем 50000, а массив не влезет, как можно реализовать, хоть намек дайте. :)


 
MBo ©   (2004-01-26 17:22) [1]

Всю олимпиаду хочешь с помощью форума пройти?


 
Андрей Сенченко ©   (2004-01-26 17:31) [2]

как можно реализовать

Использовать вместо массивов другие структурированные емкости данных


 
jack128 ©   (2004-01-26 17:35) [3]


> ведь количество чисел может быть больше чем 50000, а массив
> не влезет
куда массив не влезет?В стек? Влезет, куда он денеться(по крайней мере у меня влез)..
Или 50000 чисел в массив a: array[0..32000] of integer не влезут? Ну так это сам подумай почему ;-)


 
Verg ©   (2004-01-26 17:38) [4]

Допустим, вы не знаете делфи. Вы не знаете, что существют динамические массивы, вы не подозреваете о существовании TList. Допустим вы знаете только Вирт-овский Паскаль в самом классическом его исполнении, т.е. даже не Борланд-Паскаль 7-0 (какая боль:)), где хотя бы getmem.
Но неужели слово "связанный список" (Linked list) вам тоже ни о чем не говорит?
Ведь "намек" какую структуру данных использовать дан прямо в самой постановке задачи.


 
Chuha   (2004-01-26 17:48) [5]

2MBo в форумя я хочу найти помощь, хочу понять то, что не ясно в задаче!!


 
Chuha   (2004-01-26 17:49) [6]

2MBo в форуме я хочу найти помощь, хочу понять то, что не ясно для меня!!


 
alex_*** ©   (2004-01-26 17:54) [7]

спрашивать надо конкретно, а не грузить лишней информацией и кучей строк кода.


 
Chuha   (2004-01-26 17:56) [8]

Надо быть проще :P


 
Андрей Сенченко ©   (2004-01-26 18:03) [9]

Chuha (26.01.04 17:56) [8]

Вам уже названо минимум 2 варианта :

- Динамические массивы
- TList и его потомки

Вы все еще ждете чего-то или прото хочется поприпираться ?


 
Chuha   (2004-01-26 18:10) [10]

Спасибо за помощь !!


 
Sandman25 ©   (2004-01-26 18:13) [11]

Chuha (26.01.04 17:13)

Обратите внимание на
Первый список упорядочен по возрастанию, второй – по убыванию
Тут вместо вложенного for лучше использовать while, причем сохраняя значение переменной цикла, оставшейся с прошлого внешнего цикла.



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
1-16277
Elast
2004-01-25 22:50
2004.02.06
RichEdit


7-16770
Fidgety
2003-11-22 10:15
2004.02.06
Как эмитировать клик мыхой?


1-16494
Dmitriy
2004-01-27 14:52
2004.02.06
Ввод числа.


1-16335
DDA
2004-01-25 00:04
2004.02.06
DateToStr(Date) и TimeToStr(time)


1-16302
kaginava
2004-01-28 14:39
2004.02.06
Определить изменение файла