らての精進日記

修行をします

aoj0298:Bus Timetable

解法

与えられるすべての時刻をvectorに突っ込む。

sort->unique->eraseと順にやっていくと重複が完全に取り除かれる。
そのあと、前から順に出力。

printfのフォーマット指定機能を使うと、簡単に問題にあった出力ができる。

コード

#include<bits/stdc++.h>
using namespace std;
 
int main(){
    vector<int>V;
 
    int n;
 
    for(int i=0;i<2;i++){
        scanf("%d",&n);
        while(n--){
            int a,b;
            scanf("%d%d",&a,&b);
            V.push_back(a*60+b);
        }
    }
 
    sort(V.begin(),V.end());
 
    V.erase(unique(V.begin(),V.end()),V.end());
 
    for(int i=0;i<V.size();i++){
        if(i)printf(" ");
        printf("%d:%02d",V[i]/60,V[i]%60);
    }
    puts("");
 
    return 0;
}