#include <iostream> #include <cstdio> #include <vector> using namespace std; vector<string> goods = {"ABDE", "ABC", "BCEF", "ADG", "BDEFH", "CFI", "DEGH", "GHI", "EFHI"}; bool try_buy(vector<int> require, vector<int> &nums) { for (int i = 0; i < 9; i++) { for (int j = 0; j < goods[i].size(); j++) { require[goods[i][j] - 'A'] += nums[i]; } } for (int i = 0; i < 9; i++) { if (require[i] % 4 != 0) return false; } return true; } int main() { vector<int> require(9); for (int i = 0; i < 9; i++) cin >> require[i]; int kind = 2; while (true) { for (int n1 = 0; n1 < kind; n1++) { for (int n2 = 0; n2 < kind; n2++) { for (int n3 = 0; n3 < kind; n3++) { for (int n4 = 0; n4 < kind; n4++) { for (int n5 = 0; n5 < kind; n5++) { for (int n6 = 0; n6 < kind; n6++) { for (int n7 = 0; n7 < kind; n7++) { for (int n8 = 0; n8 < kind; n8++) { for (int n9 = 0; n9 < kind; n9++) { vector<int> nums = {n1, n2, n3, n4, n5, n6, n7, n8, n9}; if (try_buy(require, nums)) { for (int i = 0; i < nums.size(); i++) { while (nums[i]) { cout << i + 1 << " "; nums[i]--; } } return 0; } } } } } } } } } } kind++; } } |
Double click to view unformatted code.