Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- void citire(int matrice[50][50], char culori[5][20], int& nr)
- {
- std::ifstream fin("colorare.in");
- fin >> nr;
- for (int i = 0; i < 4; i++)
- fin >> culori[i];
- int t1, t2;
- while (fin >> t1 >> t2)//pereche de tari vecine
- matrice[t1 - 1][t2 - 1] = matrice[t2 - 1][t1 - 1] = 1;
- fin.close();
- }
- void afisare(int indiceCuloareTara[50], char culori[5][20], int nr)
- {
- for (int i = 0; i < nr; i++)
- std::cout << i + 1 << " " << culori[indiceCuloareTara[i]] << "\n";
- }
- bool validareCuloare(int matrice[50][50], int indiceCuloareTara[50], int k)
- {
- for (int i = 0; i < k; i++)
- if (matrice[i][k] == 1 && indiceCuloareTara[i] == indiceCuloareTara[k])
- return false;
- return true;
- }
- int alege(int matrice[50][50], int indiceCuloareTara[], int k)
- {
- for (int i = 0; i < 4; i++) //am 4 culori
- {
- indiceCuloareTara[k] = i;
- if (validareCuloare(matrice, indiceCuloareTara, k) == true)
- return i;
- }
- return 0;
- }
- void colorare(int nr, int matrice[50][50], int indiceCuloareTara[50])
- {
- for (int i = 0; i < nr; i++)
- indiceCuloareTara[i] = alege(matrice, indiceCuloareTara, i);
- }
- int main()
- {
- int matrice[50][50], indiceCuloareTara[50], nr;
- char culori[5][20];
- citire(matrice, culori, nr);
- colorare(nr, matrice, indiceCuloareTara);
- afisare(indiceCuloareTara, culori, nr);
- return 0;
- }
Add Comment
Please, Sign In to add comment