此题开始我做的时候是用ji[]来几录已经匹配的sec[],
然而漏洞百出,我到最后也没找出程序为何是wrong answer .
弄的我最后还是重写了程序,用ji[]来记录对应下标的sec[]的匹配情况。
然而漏洞百出,我到最后也没找出程序为何是wrong answer .
弄的我最后还是重写了程序,用ji[]来记录对应下标的sec[]的匹配情况。
这是绝对的水题,但是我却难住了,因此,开始的时候选用方法很重要。
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
int n;
int a[1050];
int sec[1050];
int ji[1050];
int no = 0;
while(cin>>n)
{
if(n==0)break;
no++;
cout<<"Game "<<no<<":"<<endl;
memset(a,0,sizeof(int)*1050);
memset(sec,0,sizeof(int)*1050);
for(int i = 0; i < n; i++)
{
cin>>sec[i];
}
while(1)
{
int str = 0, wea = 0;
int flag = 0;
for(int i = 0; i < n; i++)
{
cin>>a[i];
if(a[i]!=0)flag = 1;
}
if(!flag )break;
memset(ji,0,sizeof(int)*n);
for(int i = 0; i < n; i++)
{
if(a[i] == sec[i])str++;
else
{
for(int j = 0; j < n; j++)
{ if(i == j)continue;
if(a[i] == sec[j]&&a[j]!=sec[j]&&!ji[j])
{
// int flag = 0;
wea++;ji[j] = 1;break;
//for(int k = 0; k < jinum; k++)
//{
//cout<<ji[k]<<endl;
//if(j==ji[k]){wea--;flag = 1;break;}
//}
//ji[jinum++] = j;
//cout<<j<<endl;
//if(!flag)break;
}
}
}
}
cout<<" ("<<str<<","<<wea<<")"<<endl;
}
}
return 0;
}