Pagini recente » Rezultatele filtrării | Cod sursa (job #2239627) | Cod sursa (job #3135959) | Cod sursa (job #3294036) | Cod sursa (job #142580)
Cod sursa(job #142580)
#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;
}