Files
CodeObject/storage/zeta/_static/5369.html
2026-04-27 09:44:16 +09:00

180 lines
22 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BOJ 5369 - Offline</title>
<style>
:root {
--bg: #fafaf8;
--paper: #ffffff;
--ink: #1e1f24;
--muted: #6a6d75;
--line: #d8dce3;
--accent: #0d6e6e;
--code-bg: #f4f6fb;
}
* { box-sizing: border-box; }
body {
margin: 0;
background:
radial-gradient(circle at 15% 0%, #f0efe9 0%, transparent 42%),
radial-gradient(circle at 85% 20%, #e7f1f2 0%, transparent 38%),
var(--bg);
color: var(--ink);
font-family: "Noto Sans KR", "Pretendard", "Apple SD Gothic Neo", sans-serif;
line-height: 1.65;
}
main {
max-width: 980px;
margin: 0 auto;
padding: 24px 16px 56px;
}
.header {
background: var(--paper);
border: 1px solid var(--line);
border-radius: 14px;
padding: 18px 20px;
margin-bottom: 18px;
}
.header h1 { margin: 0 0 6px; font-size: 1.5rem; }
.header p { margin: 0; color: var(--muted); font-size: 0.95rem; }
.header a { color: var(--accent); text-decoration: none; }
.section {
background: var(--paper);
border: 1px solid var(--line);
border-radius: 14px;
padding: 16px 18px;
margin-bottom: 14px;
overflow-x: auto;
}
h2 {
margin: 0 0 10px;
font-size: 1.05rem;
color: var(--accent);
border-bottom: 1px solid var(--line);
padding-bottom: 8px;
}
pre, code {
font-family: "JetBrains Mono", "Fira Code", monospace;
background: var(--code-bg);
}
pre {
padding: 12px;
border-radius: 10px;
border: 1px solid #e7ebf2;
overflow: auto;
}
blockquote {
margin: 14px 0;
padding: 16px 16px 14px 22px;
border-left: 4px solid var(--accent);
border-radius: 10px;
background: linear-gradient(90deg, #eef8f8 0%, #f9fdfd 100%);
color: #24313a;
font-weight: 600;
position: relative;
}
blockquote::before {
content: "“";
position: absolute;
left: 8px;
top: 2px;
font-size: 1.35rem;
line-height: 1;
color: #0b5f5f;
opacity: 0.7;
}
blockquote > :first-child { margin-top: 0; }
blockquote > :last-child { margin-bottom: 0; }
q {
color: #114f50;
font-weight: 700;
background: #edf8f8;
border-radius: 6px;
padding: 0 4px;
}
.math-inline math {
font-size: 1em;
vertical-align: middle;
}
.math-block {
margin: 10px 0;
padding: 8px 10px;
overflow-x: auto;
background: #f8fbff;
border: 1px solid #e2ecf8;
border-radius: 8px;
}
.math-block math {
font-size: 1.04em;
display: block;
}
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid var(--line); padding: 6px 8px; }
img { max-width: 100%; height: auto; }
</style>
</head>
<body>
<main>
<header class="header">
<h1>Asteroid Field</h1>
</header>
<article class="section">
<h2>문제</h2>
<p>Plot a path through the asteroid field. Given a starting location, final destination, and a description of the asteroid fields plot a shortest path that takes you from the starting location to the final destination without running into any asteroids. The asteroid field is described using a mxm grid of characters with</p>
<ul>
<li>s: for starting location</li>
<li>d: for final location</li>
<li>-: for open space</li>
<li>*: asteroid</li>
</ul>
<p>Here is an example of a 4x4 grid.</p>
<pre>
s*-*
-*-*
----
*-*d</pre>
<p>Your ship can move up, down, left, and right (not diagonally). Each position in a mxm grid will be assigned an integer between 0 and m<sup>2</sup>-1 as follows.</p>
<p style="text-align: center;"><img alt="" src="data:image/jpeg;base64,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" style="width: 128px; height: 85px;" /></p>
</article>
<article class="section">
<h2>입력</h2>
<p>The first line will have a positive integer n representing the number of data sets. The first line of each data set will contain an integer m, followed by m lines, and each line will contain m characters. The character s will always be in the top left corner and d will always be in the bottom right corner.</p>
</article>
<article class="section">
<h2>출력</h2>
<p>For each data set print the minimal number of moves needed to reach the destination or -1 if there is no solution.</p>
</article>
<article class="section">
<h2>예제 입력 1 복사</h2>
<pre class="sampledata" id="sample-input-1">2
4
s*-*
-*-*
--*-
*-*d
6
s*---*
-*-*--
---**-
***---
--*-**
*-*--d
</pre>
</article>
<article class="section">
<h2>예제 출력 1 복사</h2>
<pre class="sampledata" id="sample-output-1">-1
18
</pre>
</article>
</main>
</body>
</html>