Cod sursa(job #462494)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 iunie 2010 08:53:17
Problema Amlei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.55 kb
using namespace std;

#include <cstdio>
#include <vector>
#include <algorithm>
#include <fstream>

int n[2], x;
int a[2][5005];
int v[5005];

int comp(int v1[], int v2[], int n){
	int i=1;
   while(v1[i] == v2[i] && i<=n) i++;
   if(i == n+1) return 0;
   if(v1[i] < v2[i] ) return -1;
   return 1;
}


int main()
{
    int i, j, k, t, l = 0, l1 = 0;

    ifstream f("amlei.in");
    ofstream g("amlei.out");

    while ( ! f.eof()  )
    {
        f >> x >> n[0] >> n[1];
        //g << x << " " << n[0] << " " << n[1] << "\n";
        l = 0, memset(a[0], 0, sizeof(a[0])), memset(a[1], 0, sizeof(a[1]));//a[0].clear(), a[1].clear();
        for (k = 0; k < 2; ++k)
        {
            if ( k == 1 ) l1 = l, l = 0;
            for (i = 0; i < n[k]; ++i)
            {
                memset(v,0,sizeof(v));//v.clear();
                for (j = 0; j < x; ++j)
                {
                    f >> v[j];//scanf("%d", &v[j]);
                    //v.push_back(t);
                }
                sort(v, v + x);
                for (int i = 0; i < x; ++i) a[k][l++] = v[i];
                //a[k].push_back(v);
            }
            sort(a[k], a[k] + l);
            int aux = unique(a[k], a[k] + l) - a[k], aux1 = l;
            for (int i = aux; i <= aux1; ++i, --l) a[k][i] = 0;
            //a[k].erase(unique(a[k].begin(), a[k].end()), a[k].end());
        }
        if ( !comp(a[0], a[1], l) ) g << "DA\n";
        else g << "NU\n";//printf("%s\n", comp(a[0], a[1], l, l1) ? "DA" : "NU");
    }
    return 0;
}