Cod sursa(job #18502)

Utilizator alecmanAchim Ioan Alexandru alecman Data 18 februarie 2007 12:26:58
Problema Amlei Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasa a 9-a si gimnaziu Marime 1.96 kb
/*
 *
 *
  Info-Arena 2.0 - preONI 2007 - Runda 2 - Amlei
 *
 *
 */

#include<stdio.h>
#include<string.h>

#define INPUT "amlei.in"
#define OUTPUT "amlei.out"

FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");

int n,t,u,vec[501],vec2[501];
char matr[501][52],matr2[501][52];

void rezolvare();

int main()
{
  rezolvare();
  fclose(fin);
  fclose(fout);
  return 0;
}

void rezolvare()
{
  fscanf(fin, "%d %d %d", &n, &t, &u);
  int a,l;
  int final;
  while(!feof(fin))
  {
    final=1;
    for(int i=1;i<=t;++i)
    {
      for(int j=1;j<=n;++j)
      {
        fscanf(fin, "%d", &a);
        if(a<0)
          matr[i][-a-1]='2';
        else
          matr[i][a-1]='1';
      }
      vec[i]=0;
    }
    for(int i=1;i<=u;++i)
    {
      for(int j=1;j<=n;++j)
      {
        fscanf(fin, "%d", &a);
        if(a<0)
          matr2[i][-a-1]='2';
        else
          matr2[i][a-1]='1';
      }
      vec2[i]=0;
    }
    l=0;
    if(u>t)
    {
      for(int i=1;i<=u;++i)
      {
        l=0;
        for(int j=1;j<=t&&!l;++j)
          if(strcmp(matr2[i],matr[j])==0)
          {
            vec[j]=1;
            vec2[i]=1;
            l=1;
          }
        if(l==0)
          break;
      }
      if(!l)
        final=0;
      l=0;
      for(int i=1;i<=t&&!l;++i)
        if(vec[i]==0)
          l=1;
      if(l)
        final=0;

    }
    else
    {
      for(int i=1;i<=t;++i)
      {
        l=0;
        for(int j=1;j<=u&&!l;++j)
          if(strcmp(matr[i],matr2[j])==0)
          {
            vec[i]=1;
            vec2[j]=1;
            l=1;
          }
        if(l==0)
          break;
      }
      if(!l)
        final=0;
      l=0;
      for(int i=1;i<=u&&!l;++i)
        if(vec2[i]==0)
          l=1;
      if(l)
        final=0;
    }
    if(final)
      fprintf(fout, "DA\n");
    else
      fprintf(fout, "NU\n");
    fscanf(fin, "%d %d %d", &n, &t, &u);
  }
}