Cod sursa(job #484478)

Utilizator ProtomanAndrei Purice Protoman Data 14 septembrie 2010 17:56:09
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <set>

#define MAX 512
#define pb push_back

using namespace std;

set <vector <int> > setNr, setEl;
char buffIn[MAX];

int main()
{
	freopen("amlei.in", "r", stdin);
	freopen("amlei.out", "w", stdout);

	for (; fgets(buffIn, MAX, stdin); )
	{
		int n, t, u;
		sscanf(buffIn, "%d %d %d", &n, &t, &u);

		setEl.clear();
		setNr.clear();

		for (int i = 1; i <= t; i++)
		{
			vector <int> vct;
			for (int i = 1; i <= n; i++)
			{
				int x;
				scanf("%d", &x);

				vct.pb(x);
			}

			sort(vct.begin(), vct.end());

			setEl.insert(vct);
		}

		for (int i = 1; i <= u; i++)
		{
			vector <int> vct;
			for (int i = 1; i <= n; i++)
			{
				int x;
				scanf("%d", &x);

				vct.pb(x);
			}

			sort(vct.begin(), vct.end());

			setNr.insert(vct);
		}

		bool ok = 1;
		for (set <vector <int> >::iterator setElIt = setEl.begin(); setElIt != setEl.end(); setElIt++)
			ok &= (setNr.find((*setElIt)) != setNr.end());

		for (set <vector <int> >::iterator setNrIt = setNr.begin(); setNrIt != setNr.end(); setNrIt++)
			ok &= (setEl.find((*setNrIt)) != setEl.end());

		if (ok)
			printf("DA\n");
		else printf("NU\n");

		scanf("\n");
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}