Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизМассив? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c