- #include <bits/stdc++.h>
- using namespace std;
- void getAB(const string& answer, const string& guess, int& A, int& B) {
- A = B = 0;
- int countAnswer[10] = {0};
- int countGuess[10] = {0};
- for (int i = 0; i < 4; ++i) {
- if (guess[i] == answer[i]) {
- ++A;
- } else {
- ++countAnswer[answer[i] - '0'];
- ++countGuess[guess[i] - '0'];
- }
- }
- for (int i = 0; i < 10; ++i) {
- B += min(countAnswer[i], countGuess[i]);
- }
- }
- int main()
- {
- string answer;
- cin >> answer;
- if (answer.length() != 4) {
- return 1;
- }
- for (int i = 1; i <= 3; ++i) {
- string guess;
- cin >> guess;
- if (guess.length() != 4) {
- continue;
- }
- int A = 0, B = 0;
- getAB(answer, guess, A, B);
- cout << A << "A" << B << "B" << endl;
- }
- return 0;
- }
複製代碼 |