Cod sursa(job #1448889)

Utilizator robx12lnLinca Robert robx12ln Data 8 iunie 2015 10:00:56
Problema Oras Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<fstream>
#include<vector>
#include<cstring>
using namespace std;
ifstream fin("oras.in");
ofstream fout("oras.out");
vector<int> v[205];
int modul(int x){
    if(x<0)
        return -x;
    return x;
}
int d[205],f[205];
void BFS(int S){
    memset(d,0,sizeof(d));
    memset(f,0,sizeof(f));
    int p,c[200*200+5],u,i;
    p=1;
    u=1;
    c[1]=S;
    f[S]=1;
    while(p<=u){
        for(i=0;i<v[ c[p] ].size();i++){
            if( f[ v[ c[p] ][ i ] ] == 0 ){
                f[ v[ c[p] ][ i ] ]=1;
                c[++u]=v[ c[p] ][ i ];
                d[ v[ c[p] ][ i ] ]=d[ c[p] ]+1;
            }
        }
        p++;
    }
}
int a[205][205],i,j,n;
int main(){
    fin>>n;
    if(n==4){
        fout<<"-1\n";
        return 0;
    }
    for(i=1;i<=n-1;i++){
        v[i].push_back(i+1);
    }
    v[n].push_back(1);
    for(i=1;i<=n;i++){
        BFS(i);
        for(j=1;j<=n;j++){
            if(d[j]>2){
                v[i].push_back(j);
                BFS(i);
            }
        }
    }
    for(i=1;i<=n;i++){
        for(j=0;j<v[i].size();j++){
            a[i][v[i][j]]=1;
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            fout<<a[i][j];
        }
        fout<<"\n";
    }
    return 0;
}