Cod sursa(job #611935)

Utilizator nikopolCristian Condurache nikopol Data 4 septembrie 2011 18:46:52
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
#include<fstream>
#include<iostream>
#include<algorithm>
#include<string.h>

using namespace std;

char T[100][17];
char R[100][17];

void mergesort(int a, int b) {

	if(a==b) return;
	
	int m = (a+b)/2;
	mergesort(a,m);
	mergesort(m+1,b);
	int i=a,j=m+1,p=a;
	
	while(i<=m && j<=b && p<=b) {
		if(strcmp(T[i],T[j])<=0) {
			strcpy(R[p],T[i]);
			i++;
			p++;
		}
		else {
			strcpy(R[p],T[j]);
			j++;
			p++;
		}
	}
	while(i<=m && p<=b) {
		strcpy(R[p],T[i]);
		i++;
		p++;
	}
	while(j<=b && p<=b) {
		strcpy(R[p],T[i]);
		j++;
		p++;
	}
	for(i=a;i<=b;i++)
		strcpy(T[i],R[i]);
}

int main() {

	int n,i;
	int c=0;

	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	
	scanf("%i",&n);
	for(i=1;i<=n;i++) {
		scanf("%s",T[i]);
		sort(T[i],T[i]+strlen(T[i]));
	}

	mergesort(1,n);
	
	if(n>1 && strcmp(T[1],T[2])!=0)
		c++;
	
	for(i=2;i<n;i++) {
		if(strcmp(T[i-1],T[i])!=0 && strcmp(T[i],T[i+1])!=0)
			c++;
	}
	
	if(strcmp(T[n-1],T[n])!=0)
		c++;

	printf("%i",c);



	return 0;
}