You probably know the game "bulls and cows". Just in case, we
explain the rules. The first player picks a four-digit number with all digits
distinct (leading zero is allowed) and keeps it secret. The second player tries
to guess the secret number. For each guess, the first player issues a response
in the form "n bulls, m cows". A "bull" is a digit that is
present in both the secret and the guess and occurs in the same position in
both. A "cow" is a digit that is present in both numbers, but occurs in
different positions.
For example, if the first player picked 5071, and
the second guessed 6012, the response would be "one bull, one cow". Here the
"bull" is the digit 0, as it is in the second position in both numbers, and the
"cow" is the digit 1, as it is in the fourth position in the secret, but in the
third position in the guess.
Write a program to count the number of cows
and bulls for the given the secret and guess.
The first line of the input file contains four digits, the number picked by
the first player. The second line contains the number guessed by the second
player in the same format.
The first and only line of the output file should contain two integers
separated by a space, the number of "bulls" and the number of
"cows".
sample input |
sample output |
5071 6012 |
1 1 |
sample input |
sample output |
4321 4321 |
4 0 |
sample input |
sample output |
1980 0879 |
0 3 |
sample input |
sample output |
1234 5678 |
0 0 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <map> #include <cmath> #include <queue> #include <cstring> #include <set> #include <stack> #include <string> #define LL long long #define maxn 100010 #define mod 1000000007 #define INF 2000000 #define MAX 16000010 #define eps 1e-6 using
namespace std; int
main() { int
i ,m , tt , j , n ; int
num[10] ,x , y ; char
a[6] , b[6] ; // freopen("in.txt","r",stdin) ; // 水题、、、、 while ( scanf ( "%s%s" ,a,b) != EOF) { memset (num,0, sizeof (num)) ; x = y = 0 ; for ( i = 0 ; i < 4 ;i++) { num[a[i]- ‘0‘ ]++ ; if (a[i]==b[i]) x++ ; } for ( i = 0 ; i < 4 ;i++) if (a[i] != b[i] && num[b[i]- ‘0‘ ]) y++ ; cout << x << " "
<< y << endl; } return
0 ; } |
ssu 486. "Bulls and Cows",布布扣,bubuko.com
原文:http://www.cnblogs.com/20120125llcai/p/3596526.html