161 lines
11 KiB
HTML
161 lines
11 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 2721 - 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>삼각수의 합</h1>
|
|
</header>
|
|
<article class="section">
|
|
<h2>문제</h2>
|
|
<p>n번째 삼각수, T(n)은 1부터 n까지의 합이다. T(n) = 1 + ... + n. 이것은 삼각형 모양으로 표현할 수 있다. 아래 그림은 T(4)를 나타낸 것이다.</p>
|
|
|
|
<p><img alt="" src="data:image/png;base64,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" style="height:90px; width:87px" /></p>
|
|
|
|
<p>다음과 같은 식을 통해 가중치를 부여한 삼각수의 합을 구할 수 있다.</p>
|
|
|
|
<p>W(n) = Sum[k=1..n; k*T(k+1)]</p>
|
|
|
|
<p>n이 주어졌을 때, W(n)을 구하는 프로그램을 작성하시오.</p>
|
|
</article>
|
|
<article class="section">
|
|
<h2>입력</h2>
|
|
<p>첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 정수 n 하나로 이루어져 있다. (1<=n<=300)</p>
|
|
</article>
|
|
<article class="section">
|
|
<h2>출력</h2>
|
|
<p>각 테스트 케이스에 대해 W(n)을 한 줄에 하나씩 출력한다.</p>
|
|
</article>
|
|
<article class="section">
|
|
<h2>예제 입력 1 복사</h2>
|
|
<pre class="sampledata" id="sample-input-1">4
|
|
3
|
|
4
|
|
5
|
|
10</pre>
|
|
</article>
|
|
<article class="section">
|
|
<h2>예제 출력 1 복사</h2>
|
|
<pre class="sampledata" id="sample-output-1">45
|
|
105
|
|
210
|
|
2145</pre>
|
|
</article>
|
|
</main>
|
|
</body>
|
|
</html>
|