|
|
Опции темы | Опции просмотра |
02.12.2012, 18:43 | #1 (permalink) |
Новичок
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Подскажите, пожалуйста, как решить задачу на Turbo Pascal и что неверно в моем коде
Вы начали составлять график дежурства для роты солдат, но вдруг столкнулись с одним очевидным фактом. Любые два солдата, побывавшие вместе на одном из дежурств, начинают раздражать друг друга. Если два солдата уже дежурили вместе три раза, на четвёртый раз они могут разозлить друг друга настолько сильно, что, очевидно, произойдёт непоправимое. Поэтому вам нужно составить график дежурства на как можно большее количество дней таким образом, чтобы любые два солдата дежурили вместе не более трёх раз. Исходные данные В первой строке записано нечётное число n (3 ≤ n ≤ 99). Результат В первой строке выведите целое число k, максимальное количество дней, на которое можно составить график дежурств. В i-й из следующих k строк выведите через пробел номера трёх солдат, которые должны вступить на дежурство в i-й день. Солдаты занумерованы целыми числами от 1 до n. Мой код: Program Pr; Uses CRT; Var n,i,j,t,k:integer; A:array[1..100,1..100] of integer; R:array[1..5000,1..3] of integer; begin CLRSCR; Readln(n); for i:=1 to N do for j:=1 to N do if i<>j then A[i,j]:=0 else A[i,j]:=3; k:=0; for i:=1 to N do for j:=1 to n do for t:=1 to n do if (A[i,j]<3)and(A[i,t]<3) and(A[j,t]<3) then begin inc(k); R[k,1]:=i; R[k,2]:=j; R[k,3]:=t; inc(A[i,j]); inc(A[i,t]); inc(A[j,t]); inc(A[j,i]); inc(A[t,i]); inc(A[t,j]); end; writeln(k); for i:=1 to k do writeln(R[i,1],' ',R[i,2],' ',R[i,3]); Readln; end. |
02.12.2012, 18:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти темы имеют некоторые сходства с вашей, советую пролистать Помогите решить задачу Pascal Помогите решить задачу Pascal Помогите решить задачу в Pascal Помогите решить задачу в Pascal ABC |
02.12.2012, 20:19 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
02.12.2012, 20:49 | #3 (permalink) |
Новичок
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
При отладке он выдает ошибку "Неизвестный идентификатор" при writeln(R[i,1],' ',R[i,2],' ',R[i,3]);. При попытке описать он выдает еще кучу ошибок и в итоге закрывает Паскаль. Пробовала решать другие задачи (думала, может с самим Паскалем, что-то случилось) все получается.
|
02.12.2012, 20:54 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
02.12.2012, 20:57 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Попробуйте снизить границу массива 5000 в несколько раз: может быть, для Вашего Паскаля это многовато?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
02.12.2012, 21:21 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|