提出 #40117


ソースコード 拡げる

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct Range
{
	int b, e; bool u;
	Range(int _b, int _e):b(_b),e(_e),u(false){};
};

bool overlap(const Range& l, const Range& r) {
	for(int f=-1; f<=1; ++f){
		Range tl(l.b+f*24*60, l.e+f*24*60);
		if((tl.b <= r.b && r.b <= tl.e) ||
			 (tl.b <= r.e && r.e <= tl.e) ||
			 (r.b <= tl.b && tl.b <= r.e) ||
			 (r.b <= tl.e && tl.e <= r.e))
			return true;
	}
	return false;
};

bool operator<(const Range& l, const Range& r) {
	return (l.b < r.b);
};

struct FindOverlap
{
	Range base;
	FindOverlap(const Range& r):base(r){};
	bool operator()(const Range& other) const {
		return overlap(base, other);
	};
};

int main(){
	int n;
	cin >> n;
	vector<Range> rngs;
	for(;n-->0;){
		char c;
		int tsh,tsm,teh,tem;
		cin >> tsh >> c >> tsm >> teh >> c >> tem;
		rngs.push_back(Range(tsh*60+tsm, teh*60+tem-1));
	}
	sort(rngs.begin(), rngs.end());
	int c = 0;
	for(vector<Range>::iterator r = rngs.begin(); r != rngs.end(); ++r){
		if(r->u) continue;
		r->u = true;
		++c;
		vector<Range> rsvs;
		rsvs.push_back(*r);
		for(vector<Range>::iterator o = rngs.begin(); o != rngs.end(); ++o){
			if(o->u) continue;
			if(find_if(rsvs.begin(), rsvs.end(), FindOverlap(*o)) == rsvs.end()){
				o->u = true;
				rsvs.push_back(*o);
			}
		}
	}
	cout << c << endl;
	return 0;
}

提出情報

提出日時
問題 C - 席が足りない
ユーザ nrmnr
言語 C++ (G++ 4.6.4)
得点 100
コード長 1407 Byte
結果 AC
実行時間 159 ms
メモリ 896 KiB

ジャッジ結果

セット名 small1 small2 large
得点 / 配点 20 / 20 30 / 30 50 / 50
結果
AC × 45
AC × 42
AC × 88
セット名 テストケース
small1 small1/00_sample1, small1/10_input00, small1/10_input01, small1/10_input02, small1/10_input03, small1/10_input04, small1/10_input05, small1/10_input06, small1/10_input07, small1/10_input08, small1/10_input09, small1/10_input10, small1/10_input11, small1/10_input12, small1/10_input13, small1/10_input14, small1/10_input15, small1/10_input16, small1/10_input17, small1/10_input18, small1/10_input19, small2/50_sample2, small2/50_sample3, small2/60_input41, small2/60_input42, small2/60_input43, small2/60_input44, small2/60_input45, small2/60_input46, small2/60_input47, small2/60_input48, small2/60_input49, small2/60_input50, small2/60_input51, small2/60_input52, small2/60_input53, small2/60_input54, small2/60_input55, small2/60_input56, small2/60_input57, small2/60_input58, small2/60_input59, small2/60_input60, small2/60_input61, small2/60_input62
small2 small1/00_sample1, small1/10_input00, small1/10_input01, small1/10_input02, small1/10_input03, small1/10_input04, small1/10_input05, small1/10_input06, small1/10_input07, small1/10_input08, small1/10_input09, small1/10_input10, small1/10_input11, small1/10_input12, small1/10_input13, small1/10_input14, small1/10_input15, small1/10_input16, small1/10_input17, small1/10_input18, small1/10_input19, large1/20_input20, large1/20_input21, large1/20_input22, large1/20_input23, large1/20_input24, large1/20_input25, large1/20_input26, large1/20_input27, large1/20_input28, large1/20_input29, large1/20_input30, large1/20_input31, large1/20_input32, large1/20_input33, large1/20_input34, large1/20_input35, large1/20_input36, large1/20_input37, large1/20_input38, large1/20_input39, large1/20_input40
large small1/00_sample1, small1/10_input00, small1/10_input01, small1/10_input02, small1/10_input03, small1/10_input04, small1/10_input05, small1/10_input06, small1/10_input07, small1/10_input08, small1/10_input09, small1/10_input10, small1/10_input11, small1/10_input12, small1/10_input13, small1/10_input14, small1/10_input15, small1/10_input16, small1/10_input17, small1/10_input18, small1/10_input19, small2/50_sample2, small2/50_sample3, small2/60_input41, small2/60_input42, small2/60_input43, small2/60_input44, small2/60_input45, small2/60_input46, small2/60_input47, small2/60_input48, small2/60_input49, small2/60_input50, small2/60_input51, small2/60_input52, small2/60_input53, small2/60_input54, small2/60_input55, small2/60_input56, small2/60_input57, small2/60_input58, small2/60_input59, small2/60_input60, small2/60_input61, small2/60_input62, large1/20_input20, large1/20_input21, large1/20_input22, large1/20_input23, large1/20_input24, large1/20_input25, large1/20_input26, large1/20_input27, large1/20_input28, large1/20_input29, large1/20_input30, large1/20_input31, large1/20_input32, large1/20_input33, large1/20_input34, large1/20_input35, large1/20_input36, large1/20_input37, large1/20_input38, large1/20_input39, large1/20_input40, large2/70_input61, large2/70_input62, large2/70_input63, large2/70_input64, large2/70_input65, large2/70_input66, large2/70_input67, large2/70_input68, large2/70_input69, large2/70_input70, large2/70_input71, large2/70_input72, large2/70_input73, large2/70_input74, large2/70_input75, large2/70_input76, large2/70_input77, large2/70_input78, large2/70_input79, large2/70_input80, large2/70_input81, large2/70_input82
ケース名 結果 実行時間 メモリ
large1/20_input20 AC 22 ms 792 KiB
large1/20_input21 AC 22 ms 788 KiB
large1/20_input22 AC 23 ms 792 KiB
large1/20_input23 AC 22 ms 796 KiB
large1/20_input24 AC 21 ms 780 KiB
large1/20_input25 AC 159 ms 792 KiB
large1/20_input26 AC 22 ms 792 KiB
large1/20_input27 AC 22 ms 784 KiB
large1/20_input28 AC 22 ms 792 KiB
large1/20_input29 AC 22 ms 792 KiB
large1/20_input30 AC 22 ms 864 KiB
large1/20_input31 AC 23 ms 788 KiB
large1/20_input32 AC 21 ms 780 KiB
large1/20_input33 AC 23 ms 788 KiB
large1/20_input34 AC 22 ms 796 KiB
large1/20_input35 AC 22 ms 792 KiB
large1/20_input36 AC 22 ms 760 KiB
large1/20_input37 AC 22 ms 788 KiB
large1/20_input38 AC 22 ms 764 KiB
large1/20_input39 AC 22 ms 820 KiB
large1/20_input40 AC 23 ms 784 KiB
large2/70_input61 AC 22 ms 784 KiB
large2/70_input62 AC 22 ms 788 KiB
large2/70_input63 AC 22 ms 796 KiB
large2/70_input64 AC 22 ms 784 KiB
large2/70_input65 AC 22 ms 792 KiB
large2/70_input66 AC 22 ms 860 KiB
large2/70_input67 AC 22 ms 792 KiB
large2/70_input68 AC 21 ms 788 KiB
large2/70_input69 AC 23 ms 788 KiB
large2/70_input70 AC 22 ms 788 KiB
large2/70_input71 AC 22 ms 792 KiB
large2/70_input72 AC 22 ms 788 KiB
large2/70_input73 AC 24 ms 864 KiB
large2/70_input74 AC 22 ms 780 KiB
large2/70_input75 AC 21 ms 788 KiB
large2/70_input76 AC 23 ms 784 KiB
large2/70_input77 AC 22 ms 788 KiB
large2/70_input78 AC 24 ms 896 KiB
large2/70_input79 AC 23 ms 796 KiB
large2/70_input80 AC 24 ms 784 KiB
large2/70_input81 AC 22 ms 796 KiB
large2/70_input82 AC 22 ms 792 KiB
small1/00_sample1 AC 22 ms 780 KiB
small1/10_input00 AC 22 ms 768 KiB
small1/10_input01 AC 21 ms 780 KiB
small1/10_input02 AC 21 ms 784 KiB
small1/10_input03 AC 23 ms 780 KiB
small1/10_input04 AC 23 ms 792 KiB
small1/10_input05 AC 22 ms 796 KiB
small1/10_input06 AC 21 ms 792 KiB
small1/10_input07 AC 22 ms 792 KiB
small1/10_input08 AC 21 ms 784 KiB
small1/10_input09 AC 21 ms 784 KiB
small1/10_input10 AC 23 ms 764 KiB
small1/10_input11 AC 22 ms 784 KiB
small1/10_input12 AC 22 ms 780 KiB
small1/10_input13 AC 22 ms 788 KiB
small1/10_input14 AC 22 ms 784 KiB
small1/10_input15 AC 21 ms 784 KiB
small1/10_input16 AC 23 ms 792 KiB
small1/10_input17 AC 22 ms 788 KiB
small1/10_input18 AC 22 ms 792 KiB
small1/10_input19 AC 24 ms 784 KiB
small2/50_sample2 AC 23 ms 764 KiB
small2/50_sample3 AC 22 ms 784 KiB
small2/60_input41 AC 22 ms 864 KiB
small2/60_input42 AC 22 ms 768 KiB
small2/60_input43 AC 22 ms 788 KiB
small2/60_input44 AC 22 ms 776 KiB
small2/60_input45 AC 22 ms 792 KiB
small2/60_input46 AC 22 ms 788 KiB
small2/60_input47 AC 22 ms 824 KiB
small2/60_input48 AC 21 ms 784 KiB
small2/60_input49 AC 22 ms 760 KiB
small2/60_input50 AC 23 ms 780 KiB
small2/60_input51 AC 22 ms 792 KiB
small2/60_input52 AC 23 ms 788 KiB
small2/60_input53 AC 23 ms 796 KiB
small2/60_input54 AC 21 ms 788 KiB
small2/60_input55 AC 22 ms 788 KiB
small2/60_input56 AC 22 ms 792 KiB
small2/60_input57 AC 22 ms 784 KiB
small2/60_input58 AC 22 ms 784 KiB
small2/60_input59 AC 22 ms 784 KiB
small2/60_input60 AC 22 ms 796 KiB
small2/60_input61 AC 22 ms 776 KiB
small2/60_input62 AC 22 ms 792 KiB