Cod sursa(job #142580)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 24 februarie 2008 19:28:58
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int v[36009];
char m[36009][20];
int comp(int a, int b) {
	if(strcmp(m[a],m[b])==1) return 1; // compar liniile a si b din matrice
	else return 0;
}
void transform(int l){
	int x;
	x=strlen(m[l]);
	sort(m[l],m[l]+x);
}
int platouri(int n) //returnez numarul de platouri  
    {  
     int sol=0,i;  
      for(i=0;i<n-1;++i)  
     if(strcmp(m[v[i]],m[v[i+1]])!=0) sol++;  
     else  
       while(strcmp(m[v[i]],m[v[i+1]])==0) ++i;  
      if(strcmp(m[v[n-1]],m[v[n-2]])!=0) sol++;  
     return sol;  
     }  
int main(){
	int i,n,cn,sol;
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	scanf("%d",&n);
	cn=n;
	for(i=0;i<n;i++) {
		scanf("%s\n",m[i]);
		transform(i);
	}
	for(i=0;i<n;i++)
		v[i]=i;
	sort(v,v+n,comp);
	sol=platouri(n);
	printf("%d",sol);
	return 0;
}