Решения задач acmp.ru
Главная
Вход
Регистрация
Вторник, 29.09.2020, 00:10Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Pascal [121]
C++ [76]

Поиск

Мини-чат
200

Легкий заработок!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Файлы » C++

0129 Табличка

Скачать файл можно после просмотра рекламы:

05.06.2012, 02:52
#include <stdio.h>
#include <stdlib.h>
#define MIN(x,y) ((x)<(y))?(x):(y)

void work(int ** mas,int ** mas2,int m, int n, int k, int s){
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
if(mas[i][j]==1)
mas2[k][s]=MIN(mas2[k][s],abs(i-k)+abs(j-s));
}

int main(){
FILE *f=fopen("input.txt","r");
int m,n;
fscanf(f,"%d %d",&m,&n);
int ** mas = new int*[m];
int ** mas2 = new int*[m];
for(int i=0; i<m; i++){
mas[i] = new int[n];
mas2[i] = new int[n];
for(int j=0;j<n;j++){
fscanf(f,"%d ",&mas[i][j]);
mas2[i][j]=m*n;
}
fscanf(f,"\n");
}
fclose(f);
f=fopen("output.txt","w");
for(i=0;i<m;i++){
for(int j=0;j<n;j++){
if(mas[i][j]==1)mas2[i][j]=0;
else work(mas,mas2,m,n,i,j);
fprintf(f,"%d ",mas2[i][j]);
}
fprintf(f,"\n");
}
fclose(f);
for(i=0; i<m; i++){
delete mas[i];
delete mas2[i];
}
delete []mas;
delete []mas2;
return 0;
}
Категория: C++ | Добавил: shum
Просмотров: 958 | Загрузок: 0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Это интересно!


Copyright MyCorp © 2020