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;
    }

  • 相关阅读:
    MapReduce教程(一)基于MapReduce框架开发<转>
    postgresql with递归
    mysql中递归树状结构<转>
    java获取上周任意一天的日期
    IBatis批量插入数据
    UI控件篇——UIPageControl及其自定义
    Android 3.0开始引入fragments(碎片、片段)类
    APACHE LOG4J™ 2
    java 反射
    PreparedStatement用途
  • 原文地址:https://www.cnblogs.com/tclan126/p/8623617.html
Copyright © 2011-2022 走看看