Cod sursa(job #1455756)

Utilizator din99danyMatei Daniel din99dany Data 29 iunie 2015 00:43:55
Problema Barbar Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.08 kb
#include <cstdio>
using namespace std;

const int x_a[4] = {1,-1,0,0};
const int y_a[4]= {0,0,1,-1};


int x[1001 * 1001];
int y[1001 * 1001];
int d_x[1001 * 1001];
int d_y[1001 * 1001];

int v[1001][1001], d[1001][1001], cop[1001][1001];

int lee_initia( int n, int m )
{
    int i, j;
    for( i = 1; i <= n; ++i )
        for( j = 1; j <= m; ++j ) v[i][j] = cop[i][j];

}

bool lee( int n, int m, int x_i, int y_i, int x_s, int y_s, int mid )
{

    int x_aa, y_aa, s, k, i, j;

    s = k  = 1;
    x[1] = x_i;
    y[1] = y_i;
    v[x_i][y_i] = 0;


    while( s <= k  && d[x_i][y_i] >= mid){
        for( i = 0; i <= 3; ++i ){
            x_aa = x_a[i] + x[s];
            y_aa = y_a[i] + y[s];
            if( x_aa > 0 && x_aa <= n && x_aa <= m && y_aa > 0 && y_aa <= m && v[x_aa][y_aa] > v[x[s]][y[s]] + 1  && d[x_aa][y_aa] >= mid  ){
                k++;
                x[k] = x_aa;
                y[k] = y_aa;
                v[x_aa][y_aa] = v[x[s]][y[s]] + 1;
            }
        }
        s++;
    }

    /*for( i = 1; i <= n; ++i ){
        for( j = 1; j <= m; ++j ) printf("%d ",d[i][j]);
        printf("\n");
    }*/


    if( v[x_s][y_s] < 999999999  ) return true;
    else return false;

}



int dragoni( int muha, int n, int m )
{
    int x_aa, y_aa, s, i, k, j;
    j = 1;

    while( j <= muha  ){

        s = k = 1;
        x[1] = d_x[j];
        y[1] = d_y[j];
        d[x[1]][y[1]] = 0;

        while( s <= k ){
            for( i = 0; i <= 3; ++i ){
                x_aa = x_a[i] + x[s];
                y_aa = y_a[i] + y[s];
                if( x_aa > 0 && x_aa <= n && x_aa <= m && y_aa > 0 && y_aa <= m && d[x_aa][y_aa] > d[x[s]][y[s]] + 1 ){
                    k++;
                    x[k] = x_aa;
                    y[k] = y_aa;
                    d[x_aa][y_aa] = d[x[s]][y[s]] + 1;
                }
            }
            s++;
        }
        j++;
    }

}





int main()
{
    freopen("barbar.in","r",stdin);
    freopen("barbar.out","w",stdout);

    printf("-1");
    return 0;
}