PAT甲级——1006 Sign In and Sign Out (25分)
读取输入数据:首先读取输入的总记录数 M,然后读取每一行的记录,解析出每个同学的 ID、签到时间和签退时间。 转换时间:将签到和签退时间从 "HH:MM:SS" 格式转换为秒数,这样可以方便比较时间。 记录最小和最大时间:遍历所有记录,找出签到时间最小的同学和签退时间最大的同学。这些同学分别是开门和关门的同学。 输出结果:输出这两个同学的 ID。 读取输入:使用 时间转换函数: 寻找最小和最大时间:遍历所有记录,分别记录最小的签到时间和最大的签退时间,以及对应的同学 ID。 输出结果:将找到的开门和关门同学的 ID 打印出来。
发布日期:2025-05-01 23:16:29
浏览次数:13
分类:精选文章
本文共 1588 字,大约阅读时间需要 5 分钟。
为了解决这个问题,我们需要找出在一天中第一位签到的同学和最后一位签退的同学,这两位同学分别负责开门和关门。我们可以通过将签到和签退时间转换为秒来比较时间,并找到最早的签到时间和最晚的签退时间对应的同学。
方法思路
解决代码
#include#include #include #include using namespace std;struct Person { string id; string signInTime; string signOutTime;};int main() { int M; cin >> M; vector people; for (int i = 0; i < M; ++i) { string id, signIn, signOut; cin >> id >> signIn >> signOut; people.push_back({id, signIn, signOut}); } int minSignIn = 1e9; int maxSignOut = 0; string minId, maxId; for (const auto& p : people) { int signIn = timeToSeconds(p.signIn); int signOut = timeToSeconds(p.signOut); if (signIn < minSignIn) { minSignIn = signIn; minId = p.id; } if (signOut > maxSignOut) { maxSignOut = signOut; maxId = p.id; } } cout << minId << ' ' << maxId << endl; return 0;}int timeToSeconds(const string& time) { int h = stoi(time.substr(0, 2)); int m = stoi(time.substr(3, 2)); int s = stoi(time.substr(6, 2)); return h * 3600 + m * 60 + s;}
代码解释
cin 读取输入数据,解析出每个同学的 ID、签到时间和签退时间,并将这些信息存储在一个 Person 结构体中。timeToSeconds 函数将时间字符串转换为秒数,方便比较。这种方法确保了我们能够高效地找到正确的同学,并且代码结构清晰,易于理解和维护。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2026年06月10日 04时51分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PIESDKDoNet二次开发配置注意事项
2023-03-02
PIGS POJ 1149 网络流
2023-03-02
PIL Image对图像进行点乘,加上常数(等像素操作)
2023-03-02
PIL Image转Pytorch Tensor
2023-03-02
PIL&QOOT;IOERROR:带有大图像的图像文件被截断(&Q)
2023-03-02
PIL.Image、cv2的img、bytes相互转换
2023-03-02
PIL.Image进行图像融合显示(Image.blend)
2023-03-02
pilicat-dfs 霹雳猫-分布式文件系统
2023-03-02
Pillow lacks the JPEG 2000 plugin
2023-03-02
SpringBoot之ElasticsearchRestTemplate常用示例
2023-03-02
ping 全网段CMD命令
2023-03-02
ping 命令的七种用法,看完瞬间成大神
2023-03-02
Pinia入门(快速上手)
2023-03-02
Pinia:$patch的使用场景
2023-03-02
Pinia:$subscribe()的使用场景
2023-03-02
Pinpoint对Kubernetes关键业务模块进行全链路监控
2023-03-02
Pinterest 大规模缓存集群的架构剖析
2023-03-02