Cod sursa(job #3265873)

Utilizator PredaBogdanPreda Bogdan PredaBogdan Data 3 ianuarie 2025 19:35:29
Problema Restante Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("restante.in");
ofstream g("restante.out");

bool verif(char a[17], char b[17]){
    int ap[123] = {0}, lenA = strlen(a), lenB = strlen(b);
    
    if (lenA != lenB){
        return 0;
    }
    else{
        while (lenA){
            lenA--;
            ap[(int)a[lenA]]++;
            ap[(int)b[lenA]]++;
        }
    }

    for (int i = 97; i <= 122; i++){
        if(ap[i] % 2 != 0){
            return 0;
        }
    }

    return 1;
}

int main(void){
    char vec[36001][17];
    int n = 0, count = 0;
    bool ok = true;
    f >> n; f.get();
    for (int i = 0; i < n; i++){
        f.getline(vec[i], 17);
    }

    for (int i = 0; i < n - 1; i++){
        ok = true;
        if (strcmp(vec[i], "-1") != 0){
            for (int j = i + 1; j < n; j++){
                if (strcmp(vec[j], "-1") != 0){
                    if (verif(vec[i], vec[j]) == 1){
                        strcpy(vec[j], "-1");
                        ok = false;
                    }
                }
            }
            if (!ok) strcpy(vec[i], "-1");
        }
    }

    for (int i = 0; i < n; i++){
        if (strcmp(vec[i], "-1") != 0)
            count++;
    }
    
    g << count;

    return 0;
}