42 lines
1013 B
C
Executable File
42 lines
1013 B
C
Executable File
#include <stdio.h>
|
|
#include <stdbool.h>
|
|
|
|
int pickedColor[6] = { 0 };
|
|
|
|
bool pickNextColor(int layer, int maxColorCount) {
|
|
int i = 1;
|
|
if (layer == 6) {
|
|
if ((pickedColor[1] != pickedColor[5])
|
|
&& (pickedColor[1] != pickedColor[4])
|
|
&& (pickedColor[1] != pickedColor[3])
|
|
&& (pickedColor[5] != pickedColor[4])
|
|
&& (pickedColor[3] != pickedColor[4])
|
|
&& (pickedColor[4] != pickedColor[2])
|
|
&& (pickedColor[3] != pickedColor[2])) {
|
|
printf("Min color required: %d\n", maxColorCount);
|
|
printf("A: %d\nB: %d\nC: %d\nD: %d\nE: %d\n",
|
|
pickedColor[1], pickedColor[2], pickedColor[3], pickedColor[4], pickedColor[5]);
|
|
return true;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
else {
|
|
for (i = 1; i <= maxColorCount; i++) {
|
|
pickedColor[layer] = i;
|
|
if (pickNextColor(layer + 1, maxColorCount)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
int maxColorCount = 2;
|
|
while (!pickNextColor(1, maxColorCount)) {
|
|
maxColorCount++;
|
|
}
|
|
return 0;
|
|
} |