B1028. 人口普查
基本思路#
- 定义一个结构体person,persion的属性是姓名和生日
- 生日用年、月、日来表示
- 合法性判断(左右边界判断),先检查年,再检查月,最后检查日
#include <bits/stdc++.h> using namespace std; struct Person { char name[10]; int yy, mm, dd; }youngest, oldest, left_p, right_p, temp; void init() { youngest.yy = left_p.yy = 1814; youngest.mm = left_p.mm = 9; youngest.dd = left_p.dd = 6; oldest.yy = right_p.yy = 2014; oldest.mm = right_p.mm = 9; oldest.dd = right_p.dd = 6; } bool younger(Person person, Person target) { if (person.yy != target.yy) { return person.yy < target.yy; } if (person.mm != person.mm) { return person.mm < target.mm; } if (person.dd != person.dd) { return person.dd < target.dd; } return false; } bool older(Person person, Person target) { if (person.yy != target.yy) { return person.yy > target.yy; } if (person.mm != person.mm) { return person.mm > target.mm; } if (person.dd != person.dd) { return person.dd > target.dd; } return false; } int main(int argc, char* argv[]) { init(); int N, yy, mm, dd, num = 0; cin >> N; for (int i = 0; i < N; i++) { scanf("%s %d/%d/%d", temp.name, &temp.yy, &temp.mm, &temp.dd); if (younger(temp, right_p) && older(temp, left_p)) { num++; if (younger(youngest, temp)) { youngest = temp; } if (older(oldest, temp)) { oldest = temp; } } } cout << num << ' ' << oldest.name << ' ' << youngest.name << ' ' << endl; return 0; }
作者:BigBender
出处:https://www.cnblogs.com/BigBender/p/12271755.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!