可怜的蚁人进入量子领域后,黄蜂女被灭霸的一个响指带走,导致可怜的蚁人困在了量子领域,为了生存,他们开始建造自己家园。

蚁人为了方便在这里生存,他们建造了自己火车站。某车站有N个人上车,其中M对是情侣,当然其余的人都是单身。由于火车不是首发站,车上免不了座位已经被占用。但是对于情侣有如下条件:

1.上车后情侣需要坐在一起才能继续保持情侣身份(即座位相邻),如果他们没有坐在一起,他们将会分手不再保持情侣(有些恶劣)。

2.对于单身乘客,如果两个单身乘客坐在一起也可以变成情侣(仅限于本站上车的单身蚁人,且蚁人不存在男女之分,emmm)。

火车每排座位表:OO|OX (’O’表示座位空闲;’|’表示过道;’X’表示座位已经被占用,’X’的位置不确定)列车有k排座位。

当然,我们希望看到尽可能多的蚁人情侣出现在这个列车上。

输入第一行输入三个数字:N上车人数,M情侣对数,K车厢座位排数。(1<N,M,K<1000)

接下来K行每行是车站到达此站时每排的座位排布图

输出

如果火车可以承载车站的所有人,请计算出上车后情侣对数和单身人数。(情侣人数要尽可能多!!!)

如果火车无法承载车站的所有人,请输出’-1’表示无法承载车站的所有人。

样例输入 Copy

15 3 6
OO|XX
XO|XX
OX|OO
XX|OX
OO|XX
OX|XX

样例输出 Copy

-1

解析:

我们从题意得知我们是希望在车上得到最多的情侣数量并输出。首先你需要查找座位个数是否满足所有人上车,如果座位数不够则无法上车,输出“-1”即可。其次因为需要情侣数量最多,那么你可以想到只要计算车上的双人座位(即“OO“形式)的个数有多少个,然后跟乘车人数除以2进行比较即可。如果双人座位数量大于乘车人数的/2,则我们选择乘车人数的/2作为CP数量,否则我们选择双人座位数量作为CP数量,最会用总数减去(CP数量*2)即为单身数量。

AC代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
inline int read() {int x=,f=;char c=getchar();while(c!='-'&&(c<''||c>''))c=getchar();if(c=='-')f=-,c=getchar();while(c>=''&&c<='')x=x*+c-'',c=getchar();return f*x;}
typedef long long ll;
const int maxn = 1e5+;
char a[maxn][];
int main()
{
int n,m,k;
cin>>n>>m>>k;
for(int i=;i<k;i++){
scanf("%s",a[i]);
}
int sum=;
int ans=;
for(int i=;i<k;i++){
for(int j=;j<;j++){
if(a[i][j]=='O'){
ans++;
}
if(a[i][j]=='O'&&a[i][j+]=='O'){
sum++;
}
}
}
if(ans<n){
printf("-1\n");
}
else{
if(sum>=n/){
printf("%d %d\n",n/,n-n/*);
}
else{
printf("%d %d\n",sum,n-*sum);
}
}
return ;
}

蚁人cp数的更多相关文章

  1. linux之cp/scp命令+scp命令详解

    名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数 ...

  2. Linux cp (复制)命令简介

    \cp  -rf  source1  source2   source3   ....   directory cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] ...

  3. Linux2:vi、ls、cd、pwd、mkdir、rm、mv、cp、cat、tail

    前言 从本篇文章开始,每篇文章将写10个Linux命令,个人的写作想法是: 1.常用的Linux命令,那些生僻的.不常用的就不写了 2.从实际考虑,只列出每个命令常见的用法和参数选项,有兴趣了解进一步 ...

  4. Linux中cp和scp命令的使用方法

    Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同. cp --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件 scp --- 主要是在不同的 ...

  5. linux之cp/scp命令+scp命令详解(转)

    名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数 ...

  6. [Z] 计算机类会议期刊根据引用数排名

    一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html Th ...

  7. linux cp命令参数及用法详解

    cp (复制档案或目录)[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)[root@linux ~]# cp [options] ...

  8. CP,SCP 命令(包括windows与linux用xshell互传)

    linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... direct ...

  9. shell 外部传入jmeter脚本线程数,rampUp时间,持续运行时间

    jmeter参数化部分参考上一篇 shell参数说明:$1线程数,$2:全部并发数rampup时间,$3:脚本持续运行时间,$4:每次脚本循环持续时间 $5:所以循环持续时间 #!/bin/bash ...

随机推荐

  1. 快速ni

    代码: while(p>0)                   (mul(a,b)) = a*b; { 等同于二分 if(p%2==1) mul(ans,a); 目的是为了二分个基数的二次方乘 ...

  2. C分支语句的工程用法

    if语言中零值比较的注意点: -bool型变量应该直接出现于条件中,不要进行比较 -变量和零值比较时,零值应该出现在比较符号左边 -float型变量不能直接进行零值比较,需要定义精度 bool b = ...

  3. JDK的安装与环境配置(Windows10)

    1.安装JDK首先需要到官网下载jdk,下载地址为:https://www.oracle.com/technetwork/java/javase/downloads/index.html 目前官方已经 ...

  4. dict 字典合并

    实例 1 : 使用 update() 方法,第二个参数合并第一个参数 def Merge(dict1, dict2): return(dict2.update(dict1))   实例 2 : 使用 ...

  5. Web服务与应用

    一.Apache 1.1 简介 Apache是一个高稳定,商业级别开源的Web服务器 1.2 下载镜像 DockerHub官方提供Apache镜像不带PHP环境,也就是不是动态网页页面,只能生成静态的 ...

  6. Apache Kafka(十)Partitions与Replication Factor 调整准则

    Partitions与Replication Factor调整准则 Partition 数目与Replication Factor是在创建一个topic时非常重要的两个参数,这两个参数的取值会直接影响 ...

  7. update_jz首项V5.0-Tutorial

    What's New: 增加了4个对话框,用于展示信息.归并条目.剔除条目 增加了可视化统计图形中每个科室(柱形)的统计总数 可视化图形一些颜色调整(无奈在省份很多的条件下一些颜色还不易区分) 下面是 ...

  8. 【C语言】移动指针

    移动指针 #include<stdio.h> int main() { char *s="哈哈哈哈哈哈"; for(*s;s!="\0";s++) ...

  9. HTML学习(16)颜色

    HTML 颜色由红色.绿色.蓝色混合而成. 颜色值 HTML 颜色由一个十六进制符号来定义,这个符号由红色.绿色和蓝色的值组成(RGB). 每种颜色的最小值是0(十六进制:#00).最大值是255(十 ...

  10. Java数组转集合之Arrays.asList()用法

    Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...