Cod sursa(job #2928993)

Utilizator EasyTnsEasyTns EasyTns Data 24 octombrie 2022 13:08:20
Problema Restante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
#include<algorithm>
#include<vector>
#include<cstring>
//#include<iostream>
using namespace std;
ifstream cin("restante.in");
ofstream cout("restante.out");
char s[36005][20],s1[30];
void mergea(int st,int mij,int dr)
{
    int i=st,j=mij+1;
    char c[36005][20];int k=0;
    while(i<=mij&&j<=dr)
    {
        if(strcmp(s[i],s[j])>0)
        {
            k++;
            strcpy(c[k],s[j]);
            j++;
        }
        else
        {
            k++;
            strcpy(c[k],s[i]);
            i++;
        }
    }
    while(i<=mij)
    {
        k++;
        strcpy(c[k],s[i]);
        i++;
    }
    while(j<=dr)
    {
        k++;
        strcpy(c[k],s[j]);
        j++;
    }
    k=1;
    for( i=st;i<=dr;i++,k++)
    {
        strcpy(s[i],c[k]);
    }
}
void sorta(int st,int dr)
{
    if(dr-st<=1)
    {
        if(strcmp(s[st],s[dr])>0)
            swap(s[st],s[dr]);
    }
    else
    {
        int mij=(st+dr)/2;
        sorta(st,mij);
        sorta(mij+1,dr);
        mergea(st,mij,dr);
    }
}
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s1;
        sort(s1,s1+strlen(s1));
        strcpy(s[i],s1);
    }


    int cnt=0;
   sorta(1,n);
strcpy(s[0],"1");
strcpy(s[n+1],"2");
for(int i=1;i<=n;i++)
    if(strcmp(s[i-1],s[i])!=0&&strcmp(s[i],s[i+1])!=0)
        cnt++;

cout<<cnt;
}