提出 #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 | ||||||
| 結果 |
|
|
|
| セット名 | テストケース |
|---|---|
| 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 |