Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Проблема с 11 задачей.
1
  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. Подскажите, пожалуйста, что исправить, чтобы прога нормально заработала на сервере.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru