Cod sursa(job #1854952)

Utilizator amaliarebAmalia Rebegea amaliareb Data 23 ianuarie 2017 12:46:23
Problema Barbar Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
ifstream f("sume2.in");
ofstream g("sume2.out");
int n,m,i,j,v[1001][1001],pas,L,r,k,i1,i2,j1,j2,i3,j3;
char c;

bool drum(int dist)
{

}

int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    {
        f>>c;
        if(c=='*') v[i][j]=-1;
        else if(c=='D') v[i][j]=-2;
        else if(c=='0') v[i][j]=-3,i3=i,j3=j;
        else if(c=='I') i1=i, j1=j;
    }
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    if(v[i][j]==-2)
    {
        for(i2=i-1;i2>=1 && v[i2][j]!=-1;i2--) if(v[i2][j]<=0 || v[i2][j]>i-i2) v[i2][j]=i-i2;
        for(i2=i+1;i2<=n && v[i2][j]!=-1;i2++) if(v[i2][j]<=0 || v[i2][j]>i2-i)v[i2][j]=i2-i;
        for(j2=j-1;j2>=1 && v[i][j2]!=-1;j2--) if(v[i][j2]<=0 || v[i][j2]>j-j2)v[i][j2]=j-j2;
        for(j2=j+1;j2<=m && v[i][j2]!=-1;j2++) if(v[i][j2]<=0 || v[i][j2]>j2-j)v[i][j2]=j2-j;
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
            if(v[i][j]>=0) cout<<v[i][j]<<"  ";
            else cout<<v[i][j]<<' ';
        cout<<'\n';
    }
    L=9;
    pas=1<<L;
    if(v[i3][j3]>0) r=v[i3][j3]-1;
    else r=0;
    while(pas)
    {
        if(drum(r+pas)) r+=pas;
        pas/=2;
    }
    return 0;
}