Submission #108394


Source Code Expand

#include <iostream>
#include <cstdio>
#include <list>
#include <algorithm>

using namespace std;

void truncateTime(int &h, int &m)
{
	m = m / 5 * 5;
}

void roundUpTime(int &h, int &m)
{
	m = (m + 4) / 5 * 5;
	if (m == 60) {
		++h;
		m = 0;
	}
}

struct range_t
{
	int begH, begM;
	int endH, endM;

	pair<pair<int, int>, pair<int, int> > as_pair() const
	{
		return make_pair(beg_pair(), end_pair());
	}

	pair<int, int> beg_pair() const
	{
		return make_pair(begH, begM);
	}

	pair<int, int> end_pair() const
	{
		return make_pair(endH, endM);
	}

	void end_pair(const pair<int, int> &p)
	{
		endH = p.first;
		endM = p.second;
	}

	bool overlaps(const range_t &other) const
	{
		if (end_pair() < other.beg_pair()) {
			return false;
		}
		if (other.end_pair() < beg_pair()) {
			return false;
		}
		return true;
	}

	bool operator<(const range_t &other) const
	{
		return as_pair() < other.as_pair();
	}

	void print() const
	{
		printf("%02d%02d-%02d%02d\n", begH, begM, endH, endM);
	}
};


int main()
{
	int N;
	cin >> N;

	list<range_t> ranges;
	for (int i = 0; i < N; ++i) {
		char hyphen;
		int S, E;
		cin >> S >> hyphen >> E;

		range_t r;
		r.begH = S / 100;
		r.begM = S % 100;
		truncateTime(r.begH, r.begM);
		r.endH = E / 100;
		r.endM = E % 100;
		roundUpTime(r.endH, r.endM);
		ranges.push_back(r);
	}
	ranges.sort();

	if (ranges.size() >= 2) {
		list<range_t>::iterator it = ranges.begin();
		list<range_t>::iterator prev = it;

		++it;
		while (it != ranges.end()) {
			if (it->overlaps(*prev)) {
				prev->end_pair(max(prev->end_pair(), it->end_pair()));
				it = ranges.erase(it);
			} else {
				prev = it;
				++it;
			}
		}
	}
	for (list<range_t>::const_iterator it = ranges.begin(); it != ranges.end(); ++it) {
		it->print();
	}
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User a5ua
Language C++ (G++ 4.6.4)
Score 100
Code Size 1869 Byte
Status AC
Exec Time 62 ms
Memory 2216 KB

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 21 ms 796 KB
00_sample_02.txt AC 27 ms 804 KB
00_sample_03.txt AC 21 ms 804 KB
cho_cho_chokudai.txt AC 55 ms 2216 KB
chokudai_ga_cho.txt AC 56 ms 2084 KB
test_01.txt AC 21 ms 800 KB
test_02.txt AC 21 ms 928 KB
test_03.txt AC 21 ms 936 KB
test_04.txt AC 21 ms 804 KB
test_05.txt AC 21 ms 800 KB
test_06.txt AC 21 ms 804 KB
test_07.txt AC 21 ms 812 KB
test_08.txt AC 21 ms 800 KB
test_09.txt AC 22 ms 800 KB
test_10.txt AC 22 ms 808 KB
test_11.txt AC 21 ms 812 KB
test_12.txt AC 21 ms 800 KB
test_13.txt AC 20 ms 800 KB
test_14.txt AC 22 ms 808 KB
test_15.txt AC 21 ms 932 KB
test_16.txt AC 21 ms 932 KB
test_17.txt AC 22 ms 740 KB
test_18.txt AC 21 ms 804 KB
test_19.txt AC 22 ms 804 KB
test_20.txt AC 22 ms 924 KB
test_21.txt AC 60 ms 2208 KB
test_22.txt AC 60 ms 2148 KB
test_23.txt AC 62 ms 2208 KB
test_24.txt AC 59 ms 2084 KB
test_25.txt AC 58 ms 2200 KB
test_26.txt AC 59 ms 2088 KB
test_27.txt AC 55 ms 2204 KB
test_28.txt AC 59 ms 2212 KB
test_29.txt AC 21 ms 680 KB
test_30.txt AC 21 ms 932 KB
test_31.txt AC 27 ms 928 KB
test_32.txt AC 22 ms 932 KB
test_33.txt AC 47 ms 1652 KB
test_34.txt AC 22 ms 740 KB
test_35.txt AC 22 ms 732 KB
test_36.txt AC 60 ms 2096 KB
test_37.txt AC 61 ms 2212 KB
test_38.txt AC 59 ms 2148 KB
test_39.txt AC 62 ms 2088 KB
test_40.txt AC 59 ms 2092 KB
test_41.txt AC 55 ms 2148 KB
test_42.txt AC 60 ms 2088 KB
test_43.txt AC 54 ms 2080 KB