当前位置:网站首页>坠落的蚂蚁(北京大学考研机试题)
坠落的蚂蚁(北京大学考研机试题)
2022-07-30 05:26:00 【张学恒】
1:题目
一根长度为 1 米的木棒上有若干只蚂蚁在爬动。
它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。
如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。
三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。
如果它们爬到了木棒的边缘(0 或 100 厘米处)则会从木棒上坠落下去。
在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即 1,2,3,…99 厘米),有且只有一只蚂蚁 A 速度为 0,其他蚂蚁均在向左或向右爬动。
给出该时刻木棒上的所有蚂蚁位置和初始速度,找出蚂蚁 A 从此时刻到坠落所需要的时间。
输入格式
第一行包含一个整数表示蚂蚁的个数 N,之后共有 N 行,每一行描述一只蚂蚁的初始状态。
每个初始状态由两个整数组成,中间用空格隔开,第一个数字表示初始位置厘米数 P,第二个数字表示初始方向,−1 表示向左,1 表示向右,0 表示静止。
输出格式
蚂蚁 A 从开始到坠落的时间。若不会坠落,输出 Cannot fall!。
数据范围
2≤N≤99,
1≤P≤99
输入样例:
4
10 1
90 0
95 -1
98 -1
输出样例:
98
难度:中等
时/空限制:1s / 64MB
总通过数:279
总尝试数:638
来源:北京大学考研机试题
算法标签
2:代码实现
#include <bits/stdc++.h>
#define vi vector<int>
#define vp vector<pair<int, int>>
using namespace std;
int A;
int main() {
int n; cin >> n;
vi l, r;
vp data;
while(n --)
{
int a, b; cin >> a >> b;
if(b == 0) A = a;
else data.push_back({
a, b});
}
sort(data.begin(), data.end());
for(auto i : data)
{
if(i.first < A && i.second == 1) l.push_back(i.first);
else if(i.first > A && i.second == -1) r.push_back(i.first);
}
if(l.size() == r.size()) cout << "Cannot fall!";
else if(l.size() > r.size()) cout << 100 - l[l.size()-r.size()-1];
else cout << r[l.size()];
return 0;
}
边栏推荐
猜你喜欢

视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支
![[Vitis] Code implementation of ZCU102 development board PS-side control PL-side reset](/img/f2/429e3dd157647bb614595a83843140.png)
[Vitis] Code implementation of ZCU102 development board PS-side control PL-side reset

mysql高阶语句(一)

oracle触发器的自治事务

mysql cannot connect remotely Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10060 "Unknown error")

ThinkPHP高仿蓝奏云网盘系统源码/对接易支付系统程序

程序员赚钱实操,手把手教你做付费课程,自媒体,付费文章及付费技术课赚钱

JVM 类加载机制 超详细学习笔记(三)

无代码开发平台重新申请入门教程

涂鸦Wi-Fi&BLE SoC开发幻彩灯带
随机推荐
MySQL(4)
Internet (software) company project management software research report
参与开源,让程序员找回热血和激情
The use of Conluce, an online document management system
坪山区关于开展2022年度科技创新专项资金申报工作的通知
mysql basics (4)
从驱动表和被驱动表来快速理解MySQL中的内连接和外连接
go language study notes 2
NFT 产品设计路线图
是时候不得不学英语了,技多不压身,给自己多条路
go版本升级
Kyligence 再获 CRN, insideBIGDATA 两大国际奖项认可
Programmers care guide, give yourself a chance to make the occasional relaxation of body and mind
开源之夏 2022 与您相约!
最新版MySQL 8.0 的下载与安装(详细教程)
Seata异常:endpoint format should like ip:port
"Hou Lang" programmer version, a speech dedicated to a new generation of programmers, He Bing's "Hou Lang" speech imitation show
C语言中的基本库函数(qsort)
RadonDB MySQL on K8s 2.1.3 发布!
ThinkPHP高仿蓝奏云网盘系统源码/对接易支付系统程序