|
Вернуться
| 1 Megabyte, 27 апреля 2010 г. 0:21:01 | |
УРАААА!! Accepted!! Как долго я ждал этого сообщения!!)) В чём была ошибка толком не разобрался, просто заново прогу написал. Похоже, всё было из-за того, что в процедуре сложения использовал счётчик цикла вне самого цикла, а он видимо, не сохраняется... Я счастлив)))
|
|
|
| 2 Megabyte, 26 апреля 2010 г. 21:16:43 | |
|
Ну может и не всегда, но какие задачи ни проверял -- везде так и в этой в том числе.
|
|
|
| 3 Сегодня, 26 апреля 2010 г. 21:03:16 | |
"Если кто не знает, первый тест, по которому проверяется задача совпадает с первым тестом в условии. " Не мори :DD Не обязательно что совпадает
|
|
|
| 4 Megabyte, 26 апреля 2010 г. 20:12:34 | |
101838152353 4729387056300630144441 411842682389607 71856216672464 9973786236473 236851087387776 Вот что получается(если пробелы убрать, иначе не отправляется сообщение). Это может и неправильно, но моя проблема в другом. У меня на компе всё идёт, а когда отправляю проверять -- в первом же тесте WA. Если кто не знает, первый тест, по которому проверяется задача совпадает с первым тестом в условии. Без длинной арифметики полностью решить нельзя, просто если без неё, то идёт, пока числа маленькие. Поэтому проблема где-то в складывании массивов.
|
|
|
| 5 Шмиг Андрей Андреевич [AS PPS] (SKYDOS), 26 апреля 2010 г. 18:21:41 | |
Megabyte 1) проверь у себя на тесте: 20 300 2) а как ты хочешь решить эту задачу не использую длинную арифметику? 3) если не проходит 1 тест, может просто динамика неправильная?
|
|
|
| 6 Megabyte, 26 апреля 2010 г. 18:00:20 | |
Нет, не помогло. замена (m[p,0]+m[q,0]+abs(m[p,0]-m[q,0]))div 2 на простое нахождение максимального значения тоже ничего не поменяло. хрен поймёшь, что не так.
|
|
|
| 7 Шмиг Андрей Андреевич [AS PPS] (SKYDOS), 26 апреля 2010 г. 17:58:50 | |
idainet эх... спасибо, а то запамятовал, что такое винда)
|
|
|
| 8 Megabyte, 26 апреля 2010 г. 17:30:46 | |
Ага. Поэтому при переходе от Pascal к C сложно привыкнуть, что нужно соблюдать регистр) Если длинную арифметику не использовать, то доходит аж до 9 или 10 теста, где уже в обычные переменные числа не влезают. Может попробовать убрать процедуру и вставить её в чистом виде??
|
|
|
| 9 idainet, 26 апреля 2010 г. 16:27:30 | |
Андрей, Виндуз не чувствителен к регистру, в отличии от Линукса :-)
|
|
|
| 10 Megabyte, 26 апреля 2010 г. 15:42:34 | |
нет, проблема не в этом. Я даж пробовал писать if (k=1)and(n=3) then write(output,1); Тогда WA на втором тесте, значит проблема не с файлами. Реально интересно, в чём проблема.
|
|
|
| 11 Шмиг Андрей Андреевич [AS PPS] (SKYDOS), 26 апреля 2010 г. 10:00:21 | |
assign(input,'Input.txt'); assign(output,'Output.txt'); правильнее с маленькой буквы input.txt и output.txt
|
|
|
| 12 Megabyte, 26 апреля 2010 г. 0:12:15 | |
Проблема из того разряда, которые я больше всего ненавижу решать. Когда на моём компе идёт всё супер, а когда отправляю на проверку -- ни один тест не проходит. Вот исходник программы. Если делаю что-то криво -- сильно не ругайтесь. var input,output:text; k,n,i,j:integer; m:array[0..300,0..100] of integer; procedure summ(p,q:integer); var x:integer; begin for x:=1 to m[q,0] do m[p,x]:=m[p,x]+m[q,x]; for x:=1 to ((m[p,0]+m[q,0]+abs(m[p,0]-m[q,0]))div 2) do if m[p,x]>9 then begin m[p,x+1]:=m[p,x+1]+m[p,x] div 10; m[p,x]:=m[p,x] mod 10; if x+1>m[p,0] then m[p,0]:=x+1; end; if x>m[p,0] then m[p,0]:=x; end; begin assign(input,'Input.txt'); assign(output,'Output.txt'); reset(input); rewrite(output); read(input,k,n); for i:=0 to n do for j:=0 to 100 do m[i,j]:=0; m[0,0]:=1; m[1,0]:=1; m[0,1]:=1; m[1,1]:=1; for i:=2 to k do for j:=0 to i-1 do summ(i,j); for i:=k+1 to n do for j:=1 to k do summ(i,i-j); for i:=m[n,0] downto 1 do write(output,m[n,i]); close(output); end. Обнулил все переменные, что только можно(которые не считываются и не используются в циклах) и всё равно при проверке первый тест вылетает с WA. Подскажите, пожалуйста, что исправить, чтобы прога нормально заработала на сервере.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| |