Răspuns :
Cod C++:
#include <iostream>
using namespace std;
int n, v[20], a[20][20], gasit = 0;
int solutie(int k) {
if (k == n + 1) return 1;
return 0;
}
void tipar() {
int i;
for (i = 1; i <= n; i++) {
cout << endl;
cout << i << " - > ";
if (v[i] == 1) cout << "verde";
if (v[i] == 2) cout << "albastru";
if (v[i] == 3) cout << "mov";
if (v[i] == 4) cout << "galben";
}
}
void init(int k) {
v[k] = 0;
}
int succesor(int k) {
if (v[k] < 4) {
v[k]++;
return 1;
}
return 0;
}
int valid(int k) {
int i, j;
for (i = 1; i < k; i++) {
if (a[i][k] && v[i] == v[k]) return 0;
}
return 1;
}
void back(int k) {
if (solutie(k)) {
gasit = 1;
tipar();
}
else {
while (succesor(k)) {
if (valid(k) && !gasit) back(k + 1);
}
}
}
int main()
{
int i, x, y;
cout << "Nr tari :\n";
cin >> n;
cout << "Perechi de vecini :\n";
cin >> x >> y;
a[x][y] = 1;
while (x != 0) {
cin >> x >> y;
a[x][y] = 1;
a[y][x] = 1;
}
back(1);
}

Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!