Cod sursa(job #763653)

Utilizator Andrei.XweCobzaru Adrian-Andrei Andrei.Xwe Data 2 iulie 2012 19:58:22
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
#include<algorithm>
#include<cstring>
char c[36005][17];
int v[36005];
bool cmp(int a,int b)
{
	int i;
	for(i=0;i<17;i++)
		if(c[a][i]!=c[b][i])
			break;
	if(i==17)
		return 1;
	return c[a][i]<c[b][i];
}
bool egal(char a[],char b[])
{
	int x=strlen(a);
	int y=strlen(b);
	if(x>y)
		return 0;
	for(int i=0;i<x;i++)
		if(a[i]!=b[i])
			return 0;
	return 1;
}
int main()
{
	ifstream fcin("restante.in");
	ofstream fcout("restante.out");
	int n,i,m,nr=0;
	fcin>>n;
	for(i=1;i<=n;i++)
	{
		fcin.get();
		fcin.get(c[i],17);
		m=strlen(c[i]);
		sort(c[i],c[i]+m);
	}
	for(i=1;i<=n;i++)
		v[i]=i;
	sort(v+1,v+n+1,cmp);
	for(i=1;i<n;i++)
		if(!egal(c[v[i]],c[v[i+1]]))
			nr++;
	if(!egal(c[v[n-1]],c[v[n]]))
	fcout<<nr;
	return 0;
}