PAT 1006サインインおよびサインアウト(25分)

トピックリンク:ここをクリック

質問:毎朝、コンピューター室に最初にサインインした人がドアを開け、最後にサインインした人がドアをロックします。ログインとログアウトによると、その日にドアを開閉した人を見つけることができるはずです。

アイデア:時間hh:mm:ssは秒に変換され、m outレコードをトラバースしながら、IDが最小時間に対応し、最大時間がIDに対応し、出力への回答が記録されました。

ACコード:

#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>

using namespace std;

int main()
{
    
    
    int m;
    scanf("%d", &m);
    
    string id, first_id, last_id;
    int hh, mm, ss, first_in = 1e9, last_out = -1e9;
    
    for(int i = 0; i < m; i++)
    {
    
    
        cin >> id;
        
        scanf("%d:%d:%d", &hh, &mm, &ss);
        int t = hh * 3600 + mm * 60 + ss;
        if(t < first_in)
        {
    
    
            first_in = t;
            first_id = id;
        }
        
        scanf("%d:%d:%d", &hh, &mm, &ss);
        t = hh * 3600 + mm * 60 + ss;
        if(t > last_out)
        {
    
    
            last_out = t;
            last_id = id;
        }
    }
    
    cout << first_id << " " << last_id << endl;
    
    return 0;
}

WeChatパブリックアカウント「AlgorithmCompetitionJob Search」は、競争とジョブ検索に関連するアルゴリズムの原則とテンプレートを詳細に説明することに専念しています。注意を払い、コミュニケーションを取り、共に進歩することを歓迎します!

おすすめ

転載: blog.csdn.net/qq_42815188/article/details/108974124