Submission #452129


Source Code Expand

#include <algorithm>
#include <array>
#include <sstream>
#include <cstdio>
#include <functional>
#include <cstdlib>
#include <cctype>
#include <ostream>
#include<complex>
#include <cmath>
#include <iostream>
#include <stack>
#include <queue>
#include <list>
#include <map>
#include <numeric>
#include <set>
#include <sstream>
#include <bitset>
#include <iomanip>
#include <string>
#include <vector>
#include <string>

using namespace std;
#define OB (bitset<32>)
#define REP(i,a,n) for(int i=(a); i<(int)(n); i++)
#define rep(i,n) REP(i,0,n)
#define ALLOF(c) begin(), (c),end()

typedef long long ll;

#define PI acos(-1)
#define EPS 1e-11
#define MOD 1000000007

//less の構造体を継承して
struct unti : less<pair<int,int>>
{
    //operator()をオーバーロード
    //ここでしたい計算の処理を決定する
    bool operator()(const pair<int,int>& a,const pair<int,int>& b) const
    {
        if (a.first != b.first)
        {
            return a.first > b.first; //昇順
        }
        else
        {
            return a.second > b.second; //昇順
        }
    }
};

int main()
{
    int n = 5;

    int marume_start[] = {0,0,0,0,0,5,5,5,5,5};
    int marume_end[]= {0,5,5,5,5,5,10,10,10,10};
    priority_queue<pair<int,int>,vector<pair<int,int>>,unti> pq;
    vector<pair<int,int>> answerlist;

    cin >> n;
    rep(i,n)
    {
        string tmp;
        cin >> tmp;
        int start = atoi(tmp.substr(0,4).c_str());
        int end = atoi(tmp.substr(5,4).c_str());


        start = start - start % 10 + marume_start[start % 10];
        end = end - end % 10 + marume_end[end % 10];   
        if (start % 100 >= 60)
        {
            start += 100 - 60;
        }
        if (end % 100 >= 60 )
        {
            end += 100 - 60;
        }
        pq.push(make_pair(start,end));        
    }

    pair<int,int> first = make_pair(-1,-1);
    while (!pq.empty())
    {
        pair<int,int> tmp = pq.top();
#ifdef _DEBUG
        cout <<" val = " << tmp.first << endl;
#endif _DEBUG  

#ifdef _DEBUG
        cout <<" val = " << tmp.second << endl << endl;
#endif _DEBUG      

        if (first.first == -1)
        {
            first = tmp;
        }
        if (first.second < tmp.first)
        {
            answerlist.push_back(first);
            first = tmp;
        }
        else
        {
            first.second = max(first.second, tmp.second);
        }
        pq.pop();
    }     
    answerlist.push_back(first);

    for(auto ittr = answerlist.begin(); ittr != answerlist.end(); ittr++)
    {
        printf("%04d-%04d\n",ittr->first,ittr->second);
    } 
    return 0;
}



Submission Info

Submission Time
Task D - 感雨時刻の整理
User pekoong
Language C++11 (GCC 4.8.1)
Score 100
Code Size 2760 Byte
Status AC
Exec Time 81 ms
Memory 1488 KB

Compile Error

./Main.cpp:92:8: warning: extra tokens at end of #endif directive [enabled by default]
 #endif _DEBUG  
        ^
./Main.cpp:96:8: warning: extra tokens at end of #endif directive [enabled by default]
 #endif _DEBUG      
        ^

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 32 ms 1080 KB
00_sample_02.txt AC 29 ms 1100 KB
00_sample_03.txt AC 29 ms 1048 KB
cho_cho_chokudai.txt AC 78 ms 1456 KB
chokudai_ga_cho.txt AC 81 ms 1408 KB
test_01.txt AC 29 ms 1068 KB
test_02.txt AC 29 ms 1168 KB
test_03.txt AC 29 ms 1176 KB
test_04.txt AC 29 ms 1168 KB
test_05.txt AC 29 ms 1044 KB
test_06.txt AC 29 ms 1108 KB
test_07.txt AC 30 ms 1168 KB
test_08.txt AC 31 ms 1172 KB
test_09.txt AC 28 ms 1076 KB
test_10.txt AC 29 ms 1076 KB
test_11.txt AC 29 ms 1048 KB
test_12.txt AC 29 ms 1048 KB
test_13.txt AC 30 ms 1168 KB
test_14.txt AC 30 ms 1020 KB
test_15.txt AC 30 ms 1172 KB
test_16.txt AC 31 ms 1176 KB
test_17.txt AC 28 ms 1112 KB
test_18.txt AC 29 ms 1020 KB
test_19.txt AC 29 ms 1024 KB
test_20.txt AC 29 ms 1012 KB
test_21.txt AC 79 ms 1400 KB
test_22.txt AC 79 ms 1488 KB
test_23.txt AC 80 ms 1452 KB
test_24.txt AC 81 ms 1396 KB
test_25.txt AC 81 ms 1404 KB
test_26.txt AC 80 ms 1456 KB
test_27.txt AC 79 ms 1456 KB
test_28.txt AC 80 ms 1456 KB
test_29.txt AC 30 ms 1104 KB
test_30.txt AC 27 ms 1168 KB
test_31.txt AC 36 ms 1212 KB
test_32.txt AC 28 ms 1172 KB
test_33.txt AC 63 ms 1452 KB
test_34.txt AC 28 ms 1080 KB
test_35.txt AC 29 ms 1024 KB
test_36.txt AC 80 ms 1456 KB
test_37.txt AC 81 ms 1376 KB
test_38.txt AC 81 ms 1456 KB
test_39.txt AC 80 ms 1400 KB
test_40.txt AC 80 ms 1380 KB
test_41.txt AC 78 ms 1460 KB
test_42.txt AC 79 ms 1400 KB
test_43.txt AC 81 ms 1460 KB