Cod sursa(job #289221)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 26 martie 2009 16:19:33
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <iostream>
#define FIN "amlei.in"
#define FOUT "amlei.out"
#define MAX_N 60
#define MAX_EXP 510
using namespace std;
int E[2][MAX_EXP][MAX_N];
int N,W,L[2];
int vars[MAX_N];

void citire(void){

    freopen(FIN,"rt",stdin);
    freopen(FOUT,"wt",stdout);


    return ;
}


int adevarat(int expr){

    for (int i=1;i<=L[expr];++i){
        int ok=1;
        for (int j=1;j<=N;++j){
            int x=E[expr][i][j];
            if ((x<0 && vars[x]==1) || (x>0 && vars[x]==0)){
                ok=0;
                j=N+1;
            }
        }
        if (ok){ return 1;}
    }
    return 0;
}





int test_case(void){

    scanf("%d%d%d",&N,&L[0],&L[1]);

    for (int i=1;i<=L[0];++i)
        for (int j=1;j<=N;++j) scanf("%d",&E[0][i][j]);
    for (int i=1;i<=L[1];++i)
        for (int j=1;j<=N;++j) scanf("%d",&E[1][i][j]);

    for (int expr=0;expr<=1;++expr){

        for (int i=1;i<=L[expr];++i){
            for (int j=1;j<=N;++j){
                if (E[expr][i][j]<0){
                    vars[abs(E[expr][i][j])]=0;
                } else {vars[abs(E[expr][i][j])]=1;}
            }
            if (!adevarat(1-expr)){return 0;}
        }
    }

    return 1;
}

void solve(void){
    
    while (!feof(stdin)){ int x=test_case(); if (x) {printf("DA\n");} else
        {printf("NU\n");};scanf("\n");}
    fclose(stdin);
    fclose(stdout);
    return ;
}


int main(void){

    citire();
    solve();
    return 0;
}