遍历(从有效生日开始的)时间比较,获得年长和年轻的人。(当前有效生日和最年长/年轻的生日比较)
时间较小的相对年纪较大,生日2014年9月6号之后的无效,1814年9月6号之前的无效。
1.排除无效生日
2.从当前有效生日开始遍历寻找最值
3.当所有生日均无效时,仅输出0
Plus:
“2014年9月6号”和”1814年9月6号“都包括在内
# include# include using namespace std; int main() { int N=0; cin>>N; int Year[N],Month[N],Day[N]; string date=""; string name[N]; for(int n=0;n cin>>name[n]>>date; Year[n]=stoi(date.substr(0,4)); Month[n]=stoi(date.substr(5,7)); Day[n]=stoi(date.substr(8,10)); } int maxi=0,mini=-1,sumi=0; for(int i=0;i if(Year[i]<1814||Year[i]>2014) { continue; } else if(Year[i]==1814&&Month[i]<9) { continue; } else if(Year[i]==1814&&Month[i]==9&&Day[i]<6) { continue; } else if(Year[i]==2014&&Month[i]>9) { continue; } else if(Year[i]==2014&&Month[i]==9&&Day[i]>6) { continue; } else { sumi++; if(sumi==1) { mini=i; maxi=i; } } if(Year[i]>Year[mini]) { mini=i; } else if(Year[i]==Year[mini]) { if(Month[i]>Month[mini]) { mini=i; } else if(Month[i]==Month[mini]) { if(Day[i]>Day[mini]) { mini=i; } } } if(Year[i] maxi=i; } else if(Year[i]==Year[maxi]) { if(Month[i] maxi=i; } else if(Month[i]==Month[maxi]) { if(Day[i] maxi=i; } } } } if(sumi==0) { cout< cout< 优化: 各个功能模块可写成函数,以简化代码
结果: PLus(搬运他人):https://blog.csdn.net/qq_45949701/article/details/120069760
https://blog.csdn.net/bawangtu/article/details/81176505



