Cod sursa(job #1711142)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 30 mai 2016 18:01:02
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
struct cuv
{
    char c[19];
};
cuv a[36001];
int qx(cuv a, cuv b)
{
    return strcmp(a.c,b.c)<0;
}
int upb(int s, int d, cuv g)
{
    int m,best;
    while(s<=d)
    {
        m=s+(d-s)/2;
        if(strcmp(g.c,a[m].c)<=0)s=m+1,best=m;
        else d=m-1;
    }
    return best;
}
int n,i,f,sol;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i].c;
        sort(a[i].c,a[i].c+strlen(a[i].c));
    }
    sort(a+1,a+n+1,qx);
    for(i=1;i<=n;)
    {
        f=upb(i,n,a[i]);
        if(i==f)sol++,i++;
        else i=f;
        if(f==n)break;
    }
    fout<<sol<<"\n";
    return 0;
}