zoukankan      html  css  js  c++  java
  • 1006. Sign In and Sign Out (25)

    (1)思路

    就是简单的排序不过这里数据比较弱,用cin和cout没有超时 

    #include <cstdio>
    #include <vector>
    #include <algorithm>
    #include <string>
    #include <iostream>
    using namespace std;
    struct re{
      string id;
      string in;
      string out;
    };
    bool cmp1(re r1,re r2){ return r1.in < r2.in;}
    bool cmp2(re r1,re r2){ return r1.out > r2.out;}
    int main() {
      int n;
      scanf("%d",&n);
      vector<re> re_v(n);
      for(int i=0;i<n;i++) {
        cin>>re_v[i].id>>re_v[i].in>>re_v[i].out;
      }
      sort(re_v.begin(),re_v.end(),cmp1);
      cout<<re_v[0].id<<" ";
      sort(re_v.begin(),re_v.end(),cmp2);
      cout<<re_v[0].id;
      return 0;
    }

    (2)  也可以直接将时间转换成秒来比较大小并找到最找来的人的编号,和最晚走的人的编号 

    #include <cstdio>
    #include <string>
    #include <iostream>
    #include <climits>
    using namespace std;
    
    int main() {
      int n;
      scanf("%d",&n);
      string locked,unlock;
      int min_in=INT_MAX;
      int max_out=INT_MIN;
      for(int i=0;i<n;i++) {
        string t;
        cin>>t;
        int h1,h2,m1,m2,s1,s2;
        scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
        int tem_sec1=h1*3600+m1*60+s1;
        int tem_sec2=h2*3600+m2*60+s2;
        if(tem_sec1 < min_in) {
          unlock=t;
          min_in=tem_sec1;
        }
        if(tem_sec2 > max_out) {
          locked=t;
          max_out=tem_sec2;
        }
      }
      cout<<unlock<<" "<<locked;
      return 0;
    }

  • 相关阅读:
    时钟展频技术能有效降低EMI,深入讲解展频发生器!
    24:购物单
    22:按照字典输出字符串
    21:句子逆序
    20:字符反转
    19:ReverseNumber数字颠倒
    DNS原理及其解析过程
    18:字符个数统计
    17:不重复整数提取NoRepeatNum
    \s+ split替换
  • 原文地址:https://www.cnblogs.com/tclan126/p/8623617.html
Copyright © 2011-2022 走看看