Pagini recente » Cod sursa (job #2490249) | Cod sursa (job #2863618) | Cod sursa (job #2763049) | Cod sursa (job #2958444) | Cod sursa (job #1347738)
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("wow.in");
ofstream fout("wow.out");
const int dx[]={0,1,0,-1};
const int dy[]={1,0,-1,0};
short int sum[101][101],drum[101][101],n,p,m,i,j,x,y,q[2][10200],a[101][101],l,c,lin,col;
int u,start,Min;
bool viz[101][101];
int main()
{
fin>>n>>p>>m;
for(i=1;i<=n;i++)
for(j=1;j<=p;j++)
fin>>a[i][j];
for(i=1;i<=m;i++)
{
fin>>x>>y;
x+=1;
y+=1;
u=start=1;
q[0][u]=x;
q[1][u]=y;
while(start<=u)
{
x=q[0][start];
y=q[1][start];
for(i=0;i<=3;i++)
{
l=x+dx[i];
c=y+dy[i];
if(a[l][c]!=-1&&viz[l][c]==0&&l>=1&&l<=n+1&&c>=1&&c<=p+1)
{
a[l][c]=a[x][y]+1;
q[0][++u]=l;
q[1][u]=c;
sum[l][c]+=a[l][c];
viz[l][c]=1;
drum[l][c]++;
}
}
start++;
}
memset(viz,0,sizeof(viz));
}
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
if(sum[l][c]<=Min&&drum[l][c]==m)
{
Min=sum[l][c];
lin=l;
col=c;
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
fout<<sum[i][j]<<" ";
fout<<'\n';
}
fout<<Min<<'\n';
fout<<lin<<col;
return 0;
}