1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Тут у меня одна задачка которую никак не могу решить уже целую неделю. Главное не могу определиться с алгоритмом. Прошу вас помочь если сможете конечно. И так задано N чисел и требуеться найти минимальное число которое невозможно составить из сумм каких-либо заданных чисел. Но каждое заданное число можно использовать максимум один раз, т.е. можно и какое-то не использовать. Допустим если задано 1, 2, 4, 9, 100 то ответ будет 8. потому что 3 не может быть ответом так как 2+1=3, 5 тоже нет т.к. 4+1=5, и 7 т.к. 4+2+1=7, а вот 8 никак не получиться.
вот моя прога но она не совсем правильна.
var n,i,j:byte; d:array [1..100] of longint; cem:qword; begin readln(n); for i:=1 to n do read(d[i]); if d[1]>1 then begin writeln(1); exit; end; i:=0; repeat inc(i); cem:=0; for j:=1 to i do cem:=cem+d[j]; if cem+1<d[i+1] then begin writeln(cem+1); exit; end; until cem+1<d[i+1]; end.
кто нибудь знает где ошибка? может есть алгоритм получше? помогите пожалуйста. заранее большое спасибо.
Сообщение отредактировано: Bard -
--------------------
Чтобы поразить цель важна не точность, а смелость Шарль Луи Монтескё
эта здача с acm.timus.ru. я вот посылаю и проходит всего 3 теста ну вот поэтому я не знаю где у меня не проходит.
Цитата
Bard, я же тебе сказал, твой алгоритм - правильный. И сказал, что нужно подправить. И спросил, на каком примере у тебя не работает. Ты меня игнорируешь? smile.gif
нет ну что ты ...ты мне сказал исправить что-то в цикле , но тогда ведь у меня ошибка должна быть на время а у меня выдает неправильный ответ .
Добавлено через 15 мин.
Цитата
Добавь условие выхода из цикла на случай, если ответ равен сумме всех чисел + 1. (т.е. на случай, когда cem+1<d[i+1] не выполнится никогда).
можешь помочь? как мне написать это условие и куда мне его поставить? я не совсем понял что ты имеешь в виду...
--------------------
Чтобы поразить цель важна не точность, а смелость Шарль Луи Монтескё