ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1033. Лабиринт

Ez 2 understand, Ez 2 program
Послано kcm1700 27 май 2004 20:21
#include <stdio.h>
#define TDoT1033 '.'
#define WaLL1033 '#'
#define V1033 '+'
char map[50][50];
int dir[5][2]={0,1,0,-1,1,0,-1,0};
int n;
int ans;
void goprc(int r, int c){
    map[r][c]=V1033;
    int i;
    for(i=0;i<4;i++){
        if(map[r+dir[i][0]][c+dir[i][1]]==TDoT1033){
            goprc(r+dir[i][0],c+dir[i][1]);
        }
    }
}
int main(){
    int i,j,k;
    scanf("%d",&n);
    for(i=0;i<=n+1;i++){
        for(j=0;j<=n+1;j++){
            map[i][j]='#';
        }
    }
    for(i=1;i<=n;i++){
        scanf("\n");
        for(j=1;j<=n;j++){
            scanf("%c",&map[i][j]);
        }
    }
    map[1][1]=V1033;
    goprc(1,1);
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            if(map[i][j]==V1033){
                for(k=0;k<4;k++){
                    if(map[i+dir[k][0]][j+dir[k][1]]==WaLL1033){
                        ans++;
                    }
                }
            }
        }
    }
    ans-=4;
    printf("%d",ans*9);
    return 0;
}
P.S.
It is wrong solution kk

Edited by author 27.05.2004 20:23