描述
啊,从前有两个国家X和Y。两国都是兵强马壮,国王更是威猛无比。但是两个国王同时看上了一个美貌的女子,由于两个国王都深爱这名女子,都不想放弃,由于两名国王都是仁爱,害怕劳民伤财不想打仗,于是便有了个决定,决定分别派出 n 个人 来进行比赛ACM刷题;
国王们都深知( 田忌赛马这件事),于是出场的顺序都是从弱到强;每胜一场得2分,平一场得1分,输一场得0分;但是国王想要找一个裁判,因为他们都不相信对方国家的人,于是就想让你来当裁判,你一定能做到是吗??
输入
第一行有一个整数T (大于1小于10),代表有T组数据
第二行有一个整数n (大于1小于100),紧随着两行,每行有n个数分别代表有X和Y国家的参赛人 员的水平,数据保证都在int 范围内。
输出
如果两国之间的分数相等,则输出 none
输出胜的一方(X或Y或none);
样例输入
3
3
4 5 6
3 2 1
5
1 2 3 4 5
2 7 1 1 2
4
1 2 3 4
4 3 2 1
样例输出
X
X
none
分析:
1)主题循环控制。
2)动态数组申请,初始化,排序,内存回收。
3)比较俩数组各元素大小,输出结果。
代码(vs2011 c++ 编译通过):
#include
//#include
using namespace std;
int main()
{
int t,n,i,j,p,q;
cin>>t;// 主干部分循环次数控制
while(t--)
{
cin>>n; //数组大小确定
int *a =new int[n];//动态数组申明及初始化
int *b=new int[n];
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
cin>>b[i];
//sort(x,x+n);
//sort(y,y+n);
for(i = 0; i< n; i++)//数组从小到大排序
for(j = i+1; j< n; j++)
if(a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
for(i = 0; i< n; i++)
for(j = i+1; j< n; j++)
if(b[i] > b[j])
{
t = b[i];
b[i] = b[j];
b[j] = t;
}
p=q=0; //比较得分信息,输出结果
for(i=0;i
if(a[i]>b[i]) p+=2;
else if(a[i]<b[i])q+=2
else { p++; q++; }//也可以执行空语句
if(p>q)cout<<"X"<<enld;
else if(p<q)cout<<<q>Y"<<endl; </q>
else cout<<"none"<<endl;
delete[]a;
delete[]b;
}
system("pause");
return 0;
}
return 0;
}