您的位置:首页 > 其它

uva 340 Master-Mind Hints

2013-09-20 18:34 239 查看
简单重集和查找应用

#include <stdio.h>
#include <algorithm>
#include <set>
using namespace std;

#define		MAX_LEN		1000

int code[MAX_LEN];
int answer[MAX_LEN];

int case_count;

void func(int len)
{
int a, b;
int i;

multiset<int> s;
a = b =0;
for(i=0; i<len; i++)
{
if(code[i] == answer[i])
{
a++;
answer[i] = -1;
}
else
{
s.insert(code[i]);
}
}

for(i=0; i<len; i++)
{
if(answer[i] != -1)
{
if(s.find(answer[i]) != s.end())
{
b++;
s.erase(s.find(answer[i]));
}
}
}

printf("    (%d,%d)\n", a, b);
}

int main(void)
{
int len;
int i, sum;

case_count = 0;
while(1)
{
scanf("%d", &len);
if(!len)
break;

for(i=0; i<len; i++)
{
scanf("%d", code+i);
}

case_count ++;
printf("Game %d:\n", case_count);
while(1)
{
sum = 0;
for(i=0; i<len; i++)
{
scanf("%d", answer+i);
sum += answer[i];
}
if(!sum)
break;

func(len);
}
}
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm uva