UVA-340

来源:互联网 发布:汉字域名 编辑:程序博客网 时间:2024/04/29 19:19


#include <algorithm>
#include <iostream>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <deque>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <set>
using namespace std;
#define mm(a,i) memset(a, i, sizeof(a));
#define LL    long long
#define Mod 1000000007
#define SC_C(s)           scanf("%c", &s)
#define SC(a)             scanf("%d", &a)
#define SCC(a,b)          scanf("%d %d", &a, &b)
#define SCCC(a,b,c)       scanf("%d %d %d", &a, &b, &c)
#define FXA(i,a,n)        for(i=a; i<n; i++)
#define FDA(i,a,n)        for(i=a; i>n; i++)
#define FXDA(i,a,n)       for(i=a; i<=n; i++)
#define FDDA(i,a,n)       for(i=a; i>=n; i++)
#define FXB(i,a,n)        for(i=a; i<n; i--)
#define FDB(i,a,n)        for(i=a; i>n; i--)
#define FXDB(i,a,n)       for(i=a; i<=n; i--)
#define FDDB(i,a,n)       for(i=a; i>=n; i--)
#define PF(n)             printf("%d\n", n);
#define PFF(n,m)          printf("%d %d\n", n, m);
#define PFFF(x,y,z)       printf("%d %d %d\n", x, y, z);
#define PF_Case(i)        printf("Case %d:\n",i);
#define PF_C(i)           printf("%d:\n",i);
#define PF_L(x)           printf("%I64d\n",x);
#define IN                freopen("D:\\in.txt","r",stdin);
#define MAX(a,b)          a>b?a:b
#define MIN(a,b)          a<b?a:b
int maxx =  999999999;
int minn = -999999999;
bool flag;
int i,j,k,T,ans,sum,m,n,cnt;
//string s;
char* rev = "A   3  HIL JM O   2TUVWXY51SE Z  8 ";
char* msg[] = {"not a palindrome", "a regular palindrome", "a mirrored string", "a mirrored palindrome"};
char r(char ch) {
    if(isalpha(ch)) return rev[ch - 'A'];
    return rev[ch - '0' + 25];
}
int main() {
#ifndef ONLINE_JUDGE
    IN
#endif // ONLINE_JUDGE
    int n, a[1005], b[1005];
    int kase = 0;
    while(scanf("%d", &n) == 1 && n) { //n=0时输入结束
        printf("Game %d:\n", ++kase);
        for(int i = 0; i < n; i++) scanf("%d", &a[i]);
        for(;;) {
            int A = 0, B = 0;
            for(int i = 0; i < n; i++) {
                scanf("%d", &b[i]);
                if(a[i] == b[i]) A++;
            }
            if(b[0] == 0) break; //正常的猜测序列不会有0,所以只判断第一个数是否为0即可
            for(int d = 1; d <= 9; d++) {
                int c1 = 0, c2 = 0; //统计数字d在答案序列和猜测序列中各出现多少次
                for(int i = 0; i < n; i++) {
                    if(a[i] == d) c1++;
                    if(b[i] == d) c2++;
                }
                if(c1 < c2) B += c1;
                else B += c2;
            }
            printf("    (%d,%d)\n", A, B-A);
        }
    }
    return 0;
}
0 0
原创粉丝点击