HDU 1172(暴力)

来源:互联网 发布:游戏装备怎么走淘宝 编辑:程序博客网 时间:2024/05/14 03:36
#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;int num[105], a[105], b[105];int vis1[15], vis2[15];int ss[5];int isok(int x, int y, int m, int n){    int a1, a2, a3, a4, b1, b2, b3, b4, ans1 = 0, ans2 = 0;    a1 = x % 10; a2 = x / 10 % 10; a3 = x / 100 % 10; a4 = x / 1000;    b1 = y % 10; b2 = y / 10 % 10; b3 = y / 100 % 10; b4 = y / 1000;    memset(vis1, 0, sizeof vis1);    memset(vis2, 0, sizeof vis2);    vis1[a1]++;    vis1[a2]++;    vis1[a3]++;    vis1[a4]++;    vis2[b1]++;    vis2[b2]++;    vis2[b3]++;    vis2[b4]++;    if(a1 == b1) ans2++;    if(a2 == b2) ans2++;    if(a3 == b3) ans2++;    if(a4 == b4) ans2++;    for(int i = 0; i < 10; i++)        if(vis1[i] && vis2[i])            ans1 += min(vis1[i], vis2[i]);    if(ans1 == m && ans2 == n)        return 1;    else        return 0;}int main(){    int t, leap, tmp;    while(cin>>t && t)    {        for(int i = 0; i < t; i++)            cin>>num[i]>>a[i]>>b[i];        tmp = 0;        for(int i = 1000; i <= 9999; i++)        {            leap = 0;            for(int j = 0; j < t; j++)            {                if(!isok(i, num[j], a[j], b[j])){                    leap = 1;                    break;                }            }            if(!leap) {                ss[tmp++] = i;                if(tmp == 2) break;            }        }        if(tmp == 2)            cout<<"Not sure"<<endl;        else            cout<<ss[0]<<endl;    }    return 0;}

0 0