Cod sursa(job #1548483)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 10 decembrie 2015 23:07:28
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#include <utility>

#define lint long long int
using namespace std;

const int NMAX = 36005;

pair <lint, lint> v[NMAX];

int main()
{
    ifstream cin("restante.in");
    ofstream cout("restante.out");

    int frecv[30];
    char str[20];

    int n = 0;
    cin >> n;

    int l, j;
    for (int i = 1; i <= n; ++ i) {
        cin.get();
        cin.get(str + 1, 20);

        memset(frecv, 0, sizeof(frecv));

        l = strlen(str + 1);
        for (j = 1; j <= l; ++ j)
            frecv[str[j] - 'a'] ++;

        for (j = 0; j < 13; ++ j) {
            v[i].first *= 10ll;
            v[i].first += frecv[j];
        }

        for (j = 13; j < 26; ++ j) {
            v[i].second *= 10ll;
            v[i].second += frecv[j];
        }
    }

    sort(v + 1, v + n + 1);
    int ans = 0;

    int current = 1;
    for (int i = 2; i <= n; ++ i)
        if (v[i] != v[i - 1]) {
            ans += (current == 1);
            current = 1;
        }
        else
            ++ current;
    ans += (current == 1);

    cout << ans << '\n';

    cin.close();
    cout.close();
    return 0;
}