Cod sursa(job #253761)

Utilizator katakunaCazacu Alexandru katakuna Data 6 februarie 2009 12:14:01
Problema Episoade Scor 40
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1.17 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

char v[1111];
int rez,nr1,nr2,i,d[111],N,n,T,t,a[111];

int verif(){

    int i;
    for(i=1; i<n; i++){
         if(d[a[i]] && a[i+1] != d[a[i]])
         return 0;
         
     }

return 1;
}

int main(){

   FILE *f=fopen("episoade.in","r");
   FILE *g=fopen("episoade.out","w");
   v[0]=' ';
   fscanf(f,"%s",v+1);
   N=strlen(v); N--;

   fscanf(f,"%d %d",&T,&n);

   nr1=0;
   i=1;
   while( v[i]>='0' && v[i]<='9' && i<=N){
       nr1=nr1*10 + v[i] - 48;
       i++;
   }

   for(; i<=N; ){

     if(v[i] == '>'){
     i++;
        nr2=0;
        while( v[i]>='0' && v[i]<='9' && i<=N){
         nr2=nr2*10 + v[i] - 48;
         i++;
        }
        
        d[nr1] = nr2;
        nr1=nr2;
     }

     else{
     i++;
     nr1=0;
        while( v[i]>='0' && v[i]<='9' && i<=N){
        nr1=nr1*10 + v[i] - 48;
        i++;
        }
     }

   }

   for(t=1; t<=T; t++){
      for(i=1; i<=n; i++)
         fscanf(f,"%d",&a[i]);

     rez=verif();
     fprintf(g,"%d\n",rez);

   }

   fclose(f);
   fclose(g);
   return 0;
}