Cod sursa(job #2518944)

Utilizator WilIiamperWilliam Damian Balint WilIiamper Data 6 ianuarie 2020 19:35:43
Problema Lista lui Andrei Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
int n, m, litere[30][30], nr;
char v[1010];

bool OK (int l) {
    if (litere[ v[l]-96 ][ v[l-1]-96 ] || litere[ v[l-1]-96 ][ v[l]-96 ] )
        return false;
    return true;
}

void bkt (int l) {

    for (char i = 'a'; i <= 'z'; i++) {
        v[l] = i;
        if (OK(l)) {
            if (l == n) {
                nr++;
                nr %= 104659;
            }
            else
                bkt (l+1);
        }
    }

}

int main()
{
    char x, y;
    fin >> n >> m;
    for (int i = 1; i <= m; i++) {
        fin >> x >> y;
        litere[x-96][y-96] = 1;
        litere[y-96][x-96] = 1;
    }
    v[0] = 96;
    bkt(1);
    fout << nr;
    return 0;
}