Cod sursă (job #121614)

Utilizator avatar DLaEtaj Spataru Eric DLaEtaj IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp | 1.23 kb
Rundă Arhiva de probleme Status evaluat
Dată 21 feb. 2015 14:33:16 Scor 0
#include<stdio.h>

int a[1001][1001];

int main()

{

freopen ("beculete.in","r",stdin);
freopen ("beculete.out","w",stdout);

int n,nrbs,i,lin,col,defectiune;

scanf ("%d%d",&n,&nrbs);

for (i=1;i<=nrbs;i++){
    scanf ("%d%d%d",&lin,&col,&defectiune);
    //1-aprins
    //2-stins
    //3-mereu stins
    //4-mereu aprins
    if (defectiune==0)
        a[lin][col]=3;
    if (defectiune==1)
        a[lin][col]=4;}
int j=0;

a[1][1]=1;

for (i=2;i<=n;i++)
    for (j=1;j<=i;j++){
        if (j==1){
            if ((a[i-1][j]==1||a[i-1][j]==4)&&a[i][j]==0)
                a[i][j]=1;
            if (a[i][j]==0)
                a[i][j]=2;}
        else{
            if (j>=2&&i!=2){
                if (((a[i-1][j-1]==1||a[i-1][j-1]==4)&&(a[i-1][j]==2||a[i-1][j]==3))||((a[i-1][j-1]==2||a[i-1][j-1]==3)&&(a[i-1][j]==1||a[i-1][j]==4)))
                    a[i][j]=1;
                else{
                    if (j!=i)
                        a[i][j]=2;
                    if (j==i)
                        a[i][j]=1;}}
            if (j==2&&i==2){
                a[i][j]=1;}}}
for (j=1;j<=n;j++){
    if (a[n][j]==1)
        printf ("1 ");
    if (a[n][j]==2)
        printf ("0 ");}

return 0;
}