Cod sursa(job #825651)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 29 noiembrie 2012 12:36:25
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
int n,m1,m2;
vector <string> A,B;

int main()
{
	int i,j,x;
	bool ok;
	string s;
	vector <string>::iterator it;
	ifstream fin("amlei.in");
	ofstream fout("amlei.out");
	while(fin>>n)
	{
		fin>>m1>>m2;
		for(i=1;i<=m1;i++)
		{
			s.clear();
			for(j=1;j<=n;j++)
			{
				fin>>x;
				x+=n+1;
				s.push_back((char)x);
			}
			sort(s.begin(),s.end());
			it=find(A.begin(),A.end(),s);
			if(it==A.end())
				A.push_back(s);
		}
		for(i=1;i<=m2;i++)
		{
			string s;
			s.clear();
			for(j=1;j<=n;j++)
			{
				fin>>x;
				x+=n+1;
				s.push_back((char)x);
			}
			sort(s.begin(),s.end());
			it=find(B.begin(),B.end(),s);
			if(it==B.end())
				B.push_back(s);
		}
		m1=A.size();
		m2=B.size();
		if(m1!=m2)
			fout<<"NU\n";
		else
		{
			ok=true;
			sort(A.begin(),A.end());
			sort(B.begin(),B.end());
			for(i=0;i<m1 && ok;i++)
			{
				for(j=0;j<n && ok;j++)
				{
					if(A[i][j]!=B[i][j])
						ok=false;
				}
			}
			if(ok)
				fout<<"DA\n";
			else
				fout<<"NU\n";
		}
		A.clear();
		B.clear();
	}
	fin.close();
	fout.close();
	return 0;
}