Cod sursa(job #22853)

Utilizator filipbFilip Cristian Buruiana filipb Data 27 februarie 2007 18:07:42
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <stdio.h>
#include <string.h>
#include <set>

using namespace std;

int N, U, T;
set<long long> S[2];

int cmp_set(set<long long>A, set<long long>B)
{
     set<long long>::iterator it1, it2;

     if (A.size() != B.size())
        return 0;

     for (it1 = A.begin(), it2 = B.begin(); it1 != A.end();
          it1++, it2++)
               if (*it1 != *it2) return 0;
                    
     return 1;
}

int main(void)
{
    int i, j, x, semn, ok;
    long long A;
    
    freopen("amlei.in", "r", stdin);
    freopen("amlei.out", "w", stdout);    
    
    while (scanf("%d %d %d", &N, &T, &U) != EOF)
    {    
          S[0].clear(); S[1].clear();
          
          for (i = 1; i <= T; i++)
          {
              for (j = 1, A = 0; j <= N; j++)
              {
                  scanf("%d", &x);
                  if (x > 0) A += ((long long)1<<(x-1));
              }
              
              S[0].insert(A);
          }
          
          for (i = 1; i <= U; i++)
          {
              for (j = 1, A = 0; j <= N; j++)
              {
                  scanf("%d", &x);
                  if (x > 0) A += ((long long)1<<(x-1));
              }
              
              S[1].insert(A);    
          }

          ok = cmp_set(S[0], S[1]);
                      
          if (ok) printf("DA\n");
          else printf("NU\n");
    }
    
    return 0;    
}