题目来源:码蹄集
时间限制:1000ms
内存限制:65535kb
题目描述:逢年过节,和亲戚团聚干什么?聊天吃饭打牌。这次我们来打昆特牌。 但是为了照顾年纪大了的长辈,打的是特供简化版的昆特牌。 敌我双方都手握若干张牌,牌分为单位牌与天气牌。 单位牌分为近战,远程及攻城三种战力。每张牌都有各自的战力值。战力 值一定为正整数。其中某些牌为英雄牌,英雄牌的战力不会受天气牌影 响。 天气牌分为霜,雾和雨,效果分别为使近战,远程或攻城单位牌的战力都 降低为1。天气牌一旦打出,对双方都有效。在已有某张天气牌打出的情 况下打出相同的天气牌不会产生新效果。 出牌后,出的牌才会产生效果。当双方都放弃出牌或无牌可出时,会计算 双方的总战力值,总战力值高的一方胜出。 现在对方已出完牌,问以你现在手上的牌能否取胜。
输入格式:首先描述场上对方的牌。 第一行4个整数 分别描述对方近战,远程, 攻城和天气牌打出情况。 第二行 个整数,其中 描述每个近战单位。 为0表示为普通牌,为1表示是英雄牌。 为当前牌战力 值。 第三行 个整数描述每个远程单位的战力。( 同上) 第四行 个整数描述每个攻城单位的战力。( 同上) 第五行 个整数描述打出的天气牌。1表示打出霜,2表 示雾,3表示雨。 接下来一行两个数 分别表示我方单位牌数与天气牌 数。 接着第一行 个整数, 分别表示单位牌的 种类,是否为英雄牌,战力值。 为 对应近战, 远程,攻城, 为 表示普通牌,为 表示英雄牌。 接下来 个整数描述天气牌。 a1 , a2 , a3 , a4 a1 × 2 ci, di ci di a2 × 2 ci, di a3 × 2 ci, di a4 x1 , x2 x1 × 3 Xi, Yi,Zi Xi 1, 2, 3 Yi 0
输出格式:输出"Y"表示我方可以胜利,"N"不能。
输入样例:
1 5 0 1
1 10
0 1 0 1 0 1 0 1 0 2
2
3 0
1 0 5 2 0 10 2 0 100
输出样例:N
参考程序:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int n[5],c,d,x,y,z,enp[5][2],eny[5],mep[5][2],me[5],M,E;
bool wea[5],h[5];
int main()
{for(int i=1;i<=4;i++)scanf("%d",&n[i]);for(int i=1;i<=3;i++){for(int j=0;j<n[i];j++){scanf("%d%d",&c,&d);if(c)eny[i]+=d;elseenp[i][0]+=d,enp[i][1]++;}}for(int j=0;j<n[4];j++){scanf("%d",&c);wea[c]=true;}scanf("%d%d",&n[1],&n[2]);for(int j=0;j<n[1];j++){scanf("%d%d%d",&x,&y,&z);if(y)me[x]+=z;elsemep[x][0]+=z,mep[x][1]++;}for(int j=0;j<n[2];j++){scanf("%d",&x);if(wea[x])continue;elseh[x]=true;}for(int i=1;i<=3;i++){if(h[i]&&enp[i][0]-enp[i][1]>mep[i][0]-mep[i][1])wea[i]=true;M+=mep[i][wea[i]],E+=enp[i][wea[i]];M+=me[i],E+=eny[i];}if(M>E)putchar('Y');elseputchar('N');return 0;
}
本文发布于:2024-02-03 08:20:31,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170691963149805.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |