Cod sursa(job #253949)

Utilizator razyelxrazyelx razyelx Data 6 februarie 2009 13:48:38
Problema Episoade Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.96 kb
#include <fstream.h>
#include <string.h>
ifstream in("episoade.in");
ofstream out("episoade.out");

char exp[1002];
int rec[101][101],n,m;
int ep[101];

int verifica(){
    int j,a,b;
    in>>a;
    for(j=2;j<=n;++j){
       in>>b;
       if(!rec[a][b])return 0;
       a=b;
    }
    return 1;
}

int main(){
    int i,nr,k,ok,l;

    in.getline(exp,1002);

    k=0;nr=0;ok=0;
    l=strlen(exp);

    for(i=0;i<=l;++i)
       if(exp[i] >= 48 && exp[i]<=57){
	 nr = nr*10+exp[i]-48;
	 ok=1;
       }else
	 if(ok){k++;ep[k] = nr;nr=0;ok=0;}
    in>>m>>n;

    k=1;ok=0;

    for(i=0;i<=l && k<=n;++i){
       if(exp[i] == '#')ok=2;
       if(exp[i] == '>')ok=1;
       if(exp[i] >=48 &&exp[i]<=57 && ok==1){rec[k][k+1] = 1;ok=0;++k;}
       if(exp[i] >=48 &&exp[i]<=57 && ok==2){rec[k][k+1] = rec[k+1][k] =1;ok=0;++k;}
    }

    for(i=1;i<=m;++i){
       if(verifica())
	 out<<"1\n";
       else out<<"0\n";
    }


    return 0;
}