中级光能
5605 盲比多少游戏(game)
经验值:2000 时间限制:1000毫秒
合肥市第37届信息学竞赛
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
小强和小明两位小朋友在玩一个盲比多少的游戏, 游戏规则非常简单:每次手握一定数量的小弹珠出拳, 谁手中的小弹珠多,
谁就算赢,赢家不仅可以获得输家本次出拳的小弹珠,还可以得到50积分的奖励,输家则被扣除50分奖励;
如果弹珠数量一样, 则不计积分。经过若干次的出拳,最后赢家就可以得到一定的积分。假设最后赢家是小强,你可以通过安排出拳时手握弹珠数量,使小强获得最多积分。开始时两人积分都为0。
输入描述 Input Description
共3行,第一行一个正整数n (1≤n≤1000) ,表示总共出拳次数,第二行有n个由空格分隔的正整数,表示小强每次出拳时手握的弹珠数,第三行有n个由空格分隔的正整数,表示小明出拳时手握弹珠数。注意出拳时手握弹珠数不一定按照给出的顺序进行。
输出描述 Output Description
共1行一个整数,表示小强可获得的最大积分。
样例输入 Sample Input
3 1 5 3 2 4 6
样例输出 Sample Output
50
数据范围及提示 Data Size & Hint
样例解释:共出拳3次,第一次小强手握1个弹珠,小明手握6个弹珠,小强输;第二次小强手握5个弹珠,小明手握4个弹珠,小强赢;第三次小强手握3个弹珠,小明手握2个弹珠,小强赢;小强两赢一输,总积分为50分。
数据范围:1≤n≤1000,每次出拳时手握弹珠数不超过500。
#include<iostream>
#include<algorithm>
using namespace std;
int n,a[1005],b[1005],clear[1005],ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for(int i=1;i<=n;i++){
bool l=false;
int maxw=-1,t=0;
for(int j=1;j<=n;j++){
if(b[i]<a[j]&&clear[j]==false){
ans+=50;
l=true;
clear[j]=true;
break;
}
}
if(l==false){
for(int j=1;j<=n;j++){
if(clear[j]==false){
clear[j]=true;
ans-=50;
break;
}
}
}
}
cout<<ans;
return 0;
}
中级天翼
while(l1<=r1){
if(a[r1]>b[r2]){
r1--;
r2--;
win++;
}
else if(a[r1]<b[r2]){
l1++;
r2--;
lose++;
}else{
if(a[l1]>b[l2]){
l1++;
l2++;
win++;
}
else{
if(a[l1]<b[r2])
lose++;
l1++;
r2--;
}
}
}
这是求赢得和输的次数的代码
最后计算出得分
新手天翼
if(小强最大 大于 小明最大) {
小强最大 对战 小明最大
} else if(小强最大 小于 小明最大) {
小强最小 对战 小明最大
} else {
if(小强最小 小于 小明最小) {
小强最小 对战 小明最大
} else if(小强最小 大于 小明最小) {
小强最小 对战 小明最小
} else {
小强最小 对战 小明最大
}
}