์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
1 ์ด | 128 MB | 32.625% |
9205๋ฒ: ๋งฅ์ฃผ ๋ง์๋ฉด์ ๊ฑธ์ด๊ฐ๊ธฐ
๋ฌธ์ ์ก๋์ ์ฌ๋ ์๊ทผ์ด์ ์น๊ตฌ๋ค์ ์ก๋์์ ์ด๋ฆฌ๋ ํํํฌํธ ๋ฝ ํ์คํฐ๋ฒ์ ๊ฐ๋ ค๊ณ ํ๋ค. ์ฌํด๋ ๋งฅ์ฃผ๋ฅผ ๋ง์๋ฉด์ ๊ฑธ์ด๊ฐ๊ธฐ๋ก ํ๋ค. ์ถ๋ฐ์ ์๊ทผ์ด๋ค ์ง์์ ํ๊ณ , ๋งฅ์ฃผ ํ ๋ฐ์ค๋ฅผ ๋ค๊ณ ์ถ๋ฐํ๋ค. ๋งฅ์ฃผ ํ ๋ฐ์ค์๋ ๋งฅ์ฃผ๊ฐ 20๊ฐ ๋ค์ด์๋ค. ๋ชฉ์ด ๋ง๋ฅด๋ฉด ์๋๊ธฐ ๋๋ฌธ์ 50๋ฏธํฐ์ ํ ๋ณ์ฉ ๋ง์๋ ค๊ณ ํ๋ค. ์๊ทผ์ด์ ์ง์์ ํ์คํฐ๋ฒ์ด ์ด๋ฆฌ๋ ๊ณณ์ ๋งค์ฐ ๋จผ ๊ฑฐ๋ฆฌ์ด๋ค. ๋ฐ๋ผ์, ๋งฅ์ฃผ๋ฅผ ๋ ๊ตฌ๋งคํด์ผ ํ ์๋ ์๋ค. ๋ฏธ๋ฆฌ ์ธํฐ๋ท์ผ๋ก ์กฐ์ฌ๋ฅผ ํด๋ณด๋ ๋คํํ๋ ๋งฅ์ฃผ๋ฅผ ํ๋ ํธ์
www.acmicpc.net
ํด๊ฒฐ๋ฐฉ์
๊ฐ ์ขํ๋ ๋ ์ ์ x์ y๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. (๋ ๊ฐ ๋ชจ๋ ๋ฏธํฐ, -32768 ≤ x, y ≤ 32767)
์ด ์กฐ๊ฑด๋๋ก ์ด์ฐจ์๋ฐฐ์ด์ ๋ง๋๋ ค๊ณ ํ๋ ํ ๋น์กฐ์ฐจ์๋๋ ํฌ๊ธฐ์ฌ์ ์ด๋ป๊ฒ ํด์ผํ ๊น ๊ณ ๋ฏผ์ ํ๋๋ฐ ์ ๋ค๊ณผ ์ ๋ค ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๋งฅ์ฃผ 20๋ณ์ ๋ค ๋ง์์ง ์๊ณ ๊ฐ ์ ์๋ ๊ฑฐ๋ฆฌ๋ผ๋ฉด ๋ ์ ์ด ์ฐ๊ฒฐ๋๋ค๊ณ ์๊ฐํ์ฌ ๊ทธ๋ํ์ ์๋ฐฉํฅ์ฐ๊ฒฐ์ ํด์ฃผ๊ณ , ์ฐ๊ฒฐ์ ๋ชจ๋ ๋ง์น ๋ค DFS๋ฅผ ๋๋ ค์ ๋ง์ง๋ง ๋์ฐฉ์ง๊น์ง ๊ฐ ์ ์๋ค๋ฉด happy, ๊ทธ๋ ์ง ์๋ค๋ฉด sad๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ ๋ฌธ์ ์๋ค.
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
1992 KB | 0 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring> //memset
using namespace std;
const int MAX = 100 + 2; //์ถ๋ฐ์ , ๋์ฐฉ์ ํฌํจ
int N;
vector<int> graph[MAX]; //์ด์ฐจ์ ๋ฐฐ์ด
bool visited[MAX];
//๋งจํดํผ ๊ฑฐ๋ฆฌ
int distance(pair<int, int> p1, pair<int, int> p2)
{
return abs(p1.first - p2.first) + abs(p1.second - p2.second);
}
//์ ํ์ ์ธ DFS
void DFS(int node)
{
visited[node] = true;
for (int i = 0; i < graph[node].size(); i++)
{
int next = graph[node][i];
if (visited[next] == false)
DFS(next);
}
}
int main(void)
{
int t;
scanf("%d", &t);
while(t--)
{
for (int i = 0; i < MAX; i++)
graph[i].clear();
memset(visited, false, sizeof(visited));
cin >> N;
vector<pair<int, int>> coord;
//์ถ๋ฐ์ (0), ๋์ฐฉ์ (N + 1) ํฌํจ
for (int j = 0, x, y; j < N + 2; j++)
{
scanf("%d %d", &x, &y);
coord.push_back({ x, y });
}
//๋งฅ์ฃผ 20๋ณ์ผ๋ก ๊ฐ ์ ์๋ ๊ฑฐ๋ฆฌ ๋ด์ ์์ผ๋ฉด ๊ทธ๋ํ์ ์ถ๊ฐ
for (int j = 0; j < N + 2; j++)
for (int k = j + 1; k < N + 2; k++)
if (distance(coord[j], coord[k]) <= 50 * 20)
{
//์๋ฐฉํฅ ๊ทธ๋ํ
graph[j].push_back(k);
graph[k].push_back(j);
}
DFS(0);
//0์ด ์ถ๋ฐ์ , N+1์ด ๋์ฐฉ์ ์ด๋ฏ๋ก
if (visited[N + 1])
cout << "happy\n";
else
cout << "sad\n";
}
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #11722 ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ์์ด (0) | 2019.12.16 |
---|---|
[BOJ] #11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ์์ด (0) | 2019.12.16 |
[BOJ] #1012 ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2019.10.14 |
[BOJ] #10026 ์ ๋ก์์ฝ (0) | 2019.10.13 |
[BOJ] #1260 DFS์ BFS (0) | 2019.10.13 |
๋๊ธ