回答編集履歴
3
修正
answer
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
return r.first <= r.second;
|
18
18
|
}
|
19
19
|
|
20
|
-
bool
|
20
|
+
bool out_range(const range& x, const range& y) {
|
21
21
|
if ( is_valid(x) && is_valid(y) ) {
|
22
22
|
if ( x.second < y.first ) return true;
|
23
23
|
if ( y.second < x.first ) return true;
|
@@ -34,7 +34,7 @@
|
|
34
34
|
{2,4}, {2,7}, {6,7}, {6,9}
|
35
35
|
};
|
36
36
|
for ( const range& y : ys ) {
|
37
|
-
cout << x << " : " << y << " ... " << boolalpha <<
|
37
|
+
cout << x << " : " << y << " ... " << boolalpha << out_range(x,y) << endl;
|
38
38
|
}
|
39
39
|
|
40
40
|
return 0;
|
2
追記
answer
CHANGED
@@ -1,4 +1,49 @@
|
|
1
1
|
①start ①end ②start ②end を昇順に並べたとき
|
2
2
|
①①②② または ②②①① となればよさげ。
|
3
3
|
|
4
|
-
ってことは、 ①end < ②start または ②end < ①start なら条件を満たしそう。
|
4
|
+
ってことは、 ①end < ②start または ②end < ①start なら条件を満たしそう。
|
5
|
+
|
6
|
+
```C++
|
7
|
+
#include <iostream>
|
8
|
+
#include <utility>
|
9
|
+
|
10
|
+
typedef std::pair<int,int> range;
|
11
|
+
|
12
|
+
std::ostream& operator<<(std::ostream& stream, const range& r) {
|
13
|
+
return stream << '(' << r.first << ',' << r.second << ")";
|
14
|
+
}
|
15
|
+
|
16
|
+
bool is_valid(const range& r) {
|
17
|
+
return r.first <= r.second;
|
18
|
+
}
|
19
|
+
|
20
|
+
bool in_range(const range& x, const range& y) {
|
21
|
+
if ( is_valid(x) && is_valid(y) ) {
|
22
|
+
if ( x.second < y.first ) return true;
|
23
|
+
if ( y.second < x.first ) return true;
|
24
|
+
}
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
int main(){
|
30
|
+
using namespace std;
|
31
|
+
|
32
|
+
range x(5,8);
|
33
|
+
range ys[] = {
|
34
|
+
{2,4}, {2,7}, {6,7}, {6,9}
|
35
|
+
};
|
36
|
+
for ( const range& y : ys ) {
|
37
|
+
cout << x << " : " << y << " ... " << boolalpha << in_range(x,y) << endl;
|
38
|
+
}
|
39
|
+
|
40
|
+
return 0;
|
41
|
+
}
|
42
|
+
|
43
|
+
/* 実行結果
|
44
|
+
(5,8) : (2,4) ... true
|
45
|
+
(5,8) : (2,7) ... false
|
46
|
+
(5,8) : (6,7) ... false
|
47
|
+
(5,8) : (6,9) ... false
|
48
|
+
*/
|
49
|
+
```
|
1
加筆
answer
CHANGED
@@ -1,2 +1,4 @@
|
|
1
1
|
①start ①end ②start ②end を昇順に並べたとき
|
2
|
-
①①②② または ②②①① となればよさげ。
|
2
|
+
①①②② または ②②①① となればよさげ。
|
3
|
+
|
4
|
+
ってことは、 ①end < ②start または ②end < ①start なら条件を満たしそう。
|