На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
const
a : array [1..8, 1..8] of byte =
(
(1, 0, 1, 0, 1, 0, 1, 0),
(0, 1, 0, 1, 0, 1, 0, 1),
(1, 0, 1, 0, 1, 0, 1, 0),
(0, 1, 0, 1, 0, 1, 0, 1),
(1, 0, 1, 0, 1, 0, 1, 0),
(0, 1, 0, 1, 0, 1, 0, 1),
(1, 0, 1, 0, 1, 0, 1, 0),
(0, 1, 0, 1, 0, 1, 0, 1)
);
var
n, k, i, j, now, x, y : byte;
_x, _y : char;
f : boolean;
s : string;
begin
readln(n);
for i := 1 to n do begin
readln(k);
if k <> 0 then begin
readln(_x, _y);
x := ord(_x) - 48;
y := ord(_y) - 48;
now := a[x, y];
end;
f := true;
for j := 2 to k do begin
readln(_x, _y);
if f then begin
x := ord(_x) - 48;
y := ord(_y) - 48;
if a[x, y] <> now then f := false;
end;
end;
if f then s := s + '1'
else s := s + '0';
end;
writeln(s);
end.
Обратюся ко всем неравнодушным Скажите это действительно мое решение слишком по времени загибается или какието проблемы с readln или еще что-то
Поза форумом
Читайте технические условия: там ясно написано, что нужно писать read, а не readln. Именно из-за него и Time out - об этом уже не раз писалось.
С уважением - АВП
Поза форумом
NECRO, А ЗАЧЕМ ТАК ПАМЯТЬ МАШИНИ ЗАГРОМОЖДАТЬ? (масив на 64 елемента, да и все byte)
Можно их сделать boolean, а можно найти алгоритм по-лучше (хотя у тебя тоже умно), например:
взять первую считаную клетку, а потом сравнивать с ней остальные. если x-first_x нечётное число, то и y-first_y должно быть нечётным, иначе цвета клеток разные. если x-first_x чётное число, то и y-first_y должно быть чётным, иначе также цвета клеток разные. Всёго два условия и 5-6 переменных. :-)
____________________________________________________________________________________
Главное - стремление, а умение приложиться
Поза форумом
переменная типа boolean занимает ровно столько же памяти сколько и переменная типа byte, а именно, один байт.
Поза форумом
Дам-с и впарвду таймы из-за памяти я думаю. Ридом считывается не полне верно как ни странно так как я считываю чаром то конец строки также считывется как перевод каретки и т.д. 10 13
потому надо брать еще две переменных.
На счет решенеия просто оно очень наглядное и очевидное для програминга потому так и делал ясно что подразумевалось анализ парности не парности
Поза форумом
Блин невернится что немогу заАксептить эту задачу уже все переделал на рид и теперь WA
Поза форумом
Хочетса плакать кто увилит укажите мне на ошибку плз
const
a : array [1..64] of byte =
(
1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1,
1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1,
1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1,
1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1
);
type
byte = integer;
var
n, k, i, j, now, p : byte;
f : boolean;
function chk(p : byte) : byte;
begin
chk := ((p div 10) - 1) * 8 + (p mod 10);
end;
begin
read(n);
for i := 1 to n do begin
read(k);
if k <> 0 then begin
read(p);
now := a[chk(p)];
end;
f := true;
for j := 2 to k do begin
read(p);
if f and (a[chk(p)] <> now) then f := false;
end;
if f then write(1) else write(0);
end;
end.
Поза форумом
А можна умову задачі?
Спроба без умови: write('1') замість write(1)?
Відредаговано Юрко Савеленко (2006-10-12 15:19:02)
Поза форумом
necro, хоть не совсем разобрался в задаче (коментариев не хватает), но могу с увереностю сказать, что проблема в том, что вывод данных проходит по-середине ввода, то есть:
вводим первый вариант,
выводим первый вариант;
вводим второй вариант,
выводим второй вариант и т.д.
А это не по условию задачи. :-)
Поза форумом
write('1') замість write(1) - будет ровно то же самое
2Програмёр разницы нету.
Поза форумом