Cod sursă (job #143342)

Utilizator avatar spatarel Spatarel Dan-Constantin spatarel IP ascuns
Problemă Switch5 (lot liceu) Compilator cpp | 1.07 kb
Rundă Status evaluat
Dată 18 apr. 2015 01:49:52 Scor ascuns
#include <cstdio>
#include <iostream>
#include <bitset>
using namespace std;
int i,j,k,n,m,e,aux,nec[102][102],P,X,a[10005][10005];
int main()
{
    freopen("switch5.in","r",stdin);
    freopen("switch5.out","w",stdout);
    cin>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            nec[i][j]=++k;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
            P=nec[i][j];a[P][P]=1;a[P][k+1]=1;
            X=nec[i-1][j];if(X)a[P][X]=1;
            X=nec[i][j-1];if(X)a[P][X]=1;
            X=nec[i+1][j];if(X)a[P][X]=1;
            X=nec[i][j+1];if(X)a[P][X]=1;
        }
    for(i=1;i<=k;i++)
    {
        //fprintf(stderr,"%d\n",i);
        for(e=i;e<=k;e++)if(a[e][i]==1)break;
        if(e==k+1)continue;
        if(e>i)for(j=i;j<=k+1;j++){aux=a[i][j];a[i][j]=a[e][j];a[e][j]=aux;}
        for(e=1;e<=k;e++){if(e==i)continue;if(a[e][i]==0)continue;for(j=i;j<=k+1;j++)a[e][j]^=a[i][j];}
    }
    for(i=1;i<=k;i++)
    {
        if(!a[i][i])cout<<"0";
        else cout<<a[i][k+1];
        if(i%n==0)cout<<'\n';
    }
    return 0;
}