Cod sursa(job #397425)

Utilizator dead_knightTitei Paul Adrian dead_knight Data 16 februarie 2010 22:04:05
Problema Restante Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
using namespace std;
#include<cstdio>
#include<fstream>
#include<algorithm>
#include<cstring>
#define MAX 36010

char c[MAX][20];
int n,ord[MAX];

void citire()
{
    ifstream fin("restante.in");
    fin>>n;
    char ch[20];
    fin.getline(ch,18);
    for(int i=1;i<=n;i++)
    {
        fin.getline(c[i],18);
        sort(c[i],c[i]+strlen(c[i]));
    }
}

int cmp(int i,int j)
{
    int x=strcmp(c[i],c[j]);
    if(x>0)
        return 0;
    else
        return 1;
}

void sortstr()
{
    int i;
    for(i=1;i<=n;i++)
        ord[i]=i;
    sort(ord+1,ord+n+1,cmp);
}

int main()
{
    freopen("restante.out","w",stdout);
    citire();
    sortstr();
    int rez=n;
    for(int i=1;i<n;i++)
        if(strcmp(c[ord[i]],c[ord[i+1]])==0)
        {
            rez-=2;
            if(i<n)
                i++;
            while(strcmp(c[ord[i]],c[ord[i+1]])==0 && i<n)
            {
                rez--;
                i++;
            }
        }
    printf("%d", rez);
    return 0;
}