Cod sursa(job #170438)

Utilizator tm_raduToma Radu tm_radu Data 2 aprilie 2008 19:17:09
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int n, i, j, k;
char c[20];
vector<string> a;
int s[30];
int nrsol;

int main()
{
    freopen("restante.in", "r", stdin);
    freopen("restante.out", "w", stdout);
    scanf("%d", &n);
    a.push_back("");
    for ( i = 1; i <= n; i++ )
    {
        for ( j = 1; j <= 26; s[j] = 0, j++ );
        scanf("%c", &c[0]);
        scanf("%s", &c);
        for ( j = strlen(c)-1; j >= 0; j-- )
            s[(int)(c[j]-'a'+1)]++;
        k = 0;
        for ( j = 1; j <= 26; j++ )
            while ( s[j] )
                c[k] = (char)(j-1+'a'),
                k++, s[j]--;
        c[k] = '\0';
        a.push_back(c);
    }
    
    sort(a.begin(), a.end());

    for ( i = 1; i <= n; i++ )
        if ( i == n || a[i] != a[i+1] )
            nrsol++;
        else
        {
            j = i+1;
            while ( j <= n && a[i] == a[j] ) j++;
            i = j-1;
        }
    printf("%d\n", nrsol);
        
    return 0;
}