Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2008, 18:03   #1
Irisha_17_85
 
Регистрация: 03.11.2008
Сообщений: 4
По умолчанию шахматная доска

Помогите пожалуйста с решением задачки, очень нужно....
Заранее спасибо

Шахматная доска
Максимальное время работы на одном тесте:1 секунда
Максимальный объем используемой памяти:64 мегабайта

Из шахматной доски по границам клеток выпилили связную (не распадающуюся на части) фигуру без дыр. Требуется определить ее периметр.

Формат входных данных
Сначала вводится число N (1 ≤ N ≤ 64) – количество выпиленных клеток. В следующих N строках вводятся координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.
Формат выходных данных
Выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).

Последний раз редактировалось Irisha_17_85; 03.11.2008 в 18:09. Причина: изменение данных
Irisha_17_85 вне форума Ответить с цитированием
Старый 03.11.2008, 21:02   #2
sverhuVniz
Пользователь
 
Аватар для sverhuVniz
 
Регистрация: 24.10.2008
Сообщений: 32
По умолчанию

и ти думаешь что если тебе решат олимпиаду то тебе станет лучше?
посмотри лучше как работает команда из Украины zuta! я не думаю что она постоянно занимает 1 места потому что просит на форуме решить задачу! учись! чем больше работаешь чем легче в дальнейшем!
___________________________________ ____________
ВОН ВЫГНАТЬ ПРОКЛЯТЫХ СПАММЕРОВ!
sverhuVniz вне форума Ответить с цитированием
Старый 04.11.2008, 08:43   #3
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

type el=0..1;
var a:array[0..9,0..9] of el;
N,S,i,x,y:integer;
inp,outp:text;
begin
assign(inp,'input.txt');
reset(inp);
assign(outp,'output.txt');
rewrite(outp);
readln(inp,N);
for i:=1 to N do
begin
readln(inp,x,y);
a[x,y]:=1;
end;
S:=N*4;
for x:=1 to 8 do
for y:=1 to 8 do
if a[x,y]=1 then
begin
if a[x-1,y]=1 then dec(S);
if a[x+1,y]=1 then dec(S);
if a[x,y-1]=1 then dec(S);
if a[x,y+1]=1 then dec(S);
end;
writeln(outp,S);
close(outp);
end.
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 04.11.2008, 08:47   #4
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

принцип такой....... записываем в матрицу...... Периметр делаем равным колл-во*4....... затем для каждой ненулевой клетки считаем кол-во смежных ненулевых клеток и отнимаем его от общего периметра.
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 04.11.2008, 10:50   #5
Irisha_17_85
 
Регистрация: 03.11.2008
Сообщений: 4
Хорошо Спасибо огромное!!!

Вы очень помогли! Надо повышать мне свои знания...
Irisha_17_85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доска объявлений solomusic PHP 1 05.08.2008 18:57
С++:Квадратная матрица и шахматная проблема.. Andres Помощь студентам 7 02.01.2008 21:06