Cod sursa(job #1280446)

Utilizator cojocarugabiReality cojocarugabi Data 1 decembrie 2014 22:36:34
Problema Restante Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
# include <bits/stdc++.h>
using namespace std;
struct cc
{
    char c[20];
} s[40005];
bool cmp(cc a,cc b)
{
    int n=strlen(a.c),m=strlen(b.c);
    if (n != m) return (n<m);
    for (int i=0;i<n;++i) if (a.c[i]!=b.c[i]) return (a.c[i]<b.c[i]);
    return 1;
}
bool equal(cc a,cc b)
{
   int n=strlen(a.c),m=strlen(b.c);
   if (n != m) return 0;
   for (int i=0;i<n;++i) if (a.c[i]!=b.c[i]) return 0;
   return 1;
}
int main(void)
{
    int n,ans=0;
    ifstream fi("restante.in");
    fi>>n;
    for (int i=1;i<=n;++i) fi>>s[i].c,sort(s[i].c,s[i].c+strlen(s[i].c));
    sort(s+1,s+1+n,cmp);
    for (int i=1,j;i<=n;i=j)
    {
        for (j=i+1;j<=n && equal(s[i],s[j]);++j);
        ans+=(i+1==j);
    }
    ofstream fo("restante.out");
    return fo << ans << '\n',0;
}