#include<bits/stdc++.h> using namespace std; vector<string> goods = { "ABDE", "ABC", "BCEF", "ADG", "BDEFH", "CFI", "DEGH", "GHI", "EFHI" }; //vector<string> goods = { "BDEFH", "ABDE", "BCEF", "DEGH", "EFHI", "ABC", "ADG", "CFI", "GHI" }; 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.