PAT 乙级 1028
来源:互联网 发布:360vr全景通源码 编辑:程序博客网 时间:2024/05/16 03:14
一开始我是用string字符串做的,但只得到15分,最后是运算超时。
贴一下代码:
#include<iostream>#define maxn 100005 using namespace std;struct nood{string name;string days;int num; };int main(){int n;nood c[maxn];cin>>n;//string s;//string s1="2014/09/06",s2="1814/09/06";int m=0;int q,p;string ymin="9999/99/99",ymax="0000/00/00";for(int i=0;i<n;i++){//scanf("%s",c[i].name); cin>>c[i].name;cin>>c[i].days;//c[i].days=s;if(c[i].days>s1||c[i].days<s2){ m++;}else{if(c[i].days>ymax){ymax=c[i].days;q=i;}if(c[i].days<ymin){ymin=c[i].days;p=i;}} }cout<<n-m<<" "<<c[p].name<<" "<<c[q].name<<endl;return 0;}后来看到大神用一种方法,把字符串变成一个数,这样,题目好解太多,不用再管有多少天了,是不是润年等等。
ac要注意可能一个人都不符合条件。
贴上代码:
#include<iostream>#define maxn 100005using namespace std;struct nood{string name;int year,month,day;};nood c[maxn];int main(){int n;cin>>n;int m=0;int max=20140906;int min=18140906;int maxium=0;int minium=99999999;int q,p;for(int i=0;i<n;i++){cin>>c[i].name;scanf("%d/%d/%d",&c[i].year,&c[i].month,&c[i].day);int g=(c[i].year*10000+c[i].month*100+c[i].day);if(g>max||g<min) m++;else{if(g>maxium){q=i;maxium=g;}if(g<minium){p=i;minium=g;}} }if(n-m!=0) cout<<n-m<<" "<<c[p].name<<" "<<c[q].name<<endl;else cout<<"0"<<endl; return 0;}
阅读全文
0 0
- PAT乙级1028
- pat乙级1028
- PAT 乙级 1028
- PAT乙级1028
- PAT乙级1028 人口普查
- PAT乙级 1004. 成绩排名
- PAT乙级 月饼 (25)
- PAT乙级 人口普查(20)
- PAT 乙级 1020.月饼
- PAT乙级1001
- PAT乙级1002
- PAT 乙级 1028.人口普查
- PAT乙级1003
- pat乙级总结
- PAT乙级1010-月饼
- PAT乙级题解
- PAT 乙级 1001
- PAT乙级 1001
- hdu 5709 动态线段树+合并
- TCP与UDP小结
- 优惠券设计-获取随机码
- ubuntu 16.04 安装chorme
- Unity3D Shader(19)——一个简单的色散
- PAT 乙级 1028
- Mui
- python学习(6)
- 安装mysql&navicat
- 面向对象的三大特性
- HDU 1394 Minimum Inversion Number(线段树)
- optional 多值判断机制优化
- 关于mysqldb 的使用
- 动态规划之袋鼠过河问题