https://www.acmicpc.net/problem/1011
์์ด๋์ด
๋ง์ง๋ง์ด 1๋ก ๋๋๋๋ก ์ผ๋จ ๋์ด์ ํด๋ดค๋๋ฐ ์๋์ ๊ฐ์๋ค.
์ซ์ | ์ | ํ์ |
1 | 1 | 1 |
2 | 1+1 | 2 |
3 | 1+1+1 | 3 |
4 | 1+2+1 | 3 |
5 | 1+2+1+1 | 4 |
6 | 1+2+2+1 | 4 |
7 | 1+2+2+1+1 | 5 |
8 | 1+2+2+2+1 | 5 |
9 | 1+2+3+2+1 | 5 |
10 | 1+2+3+2+1+1 | 6 |
11 | 1+2+3+2+2+1 | 6 |
12 | 1+2+3+3+2+1 | 6 |
13 | 1+2+3+3+2+2+1 | 7 |
14 | 1+2+3+3+2+2+1 | 7 |
15 | 1+2+3+3+3+2+2+1 | 8 |
16 | 1+2+3+4+3+2+1 | 8 |
์ ๊ณฑ์๋ง๋ค ์๋ก์ด ์ซ์๊ฐ ๋ํ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. (4์ ๊ฒฝ์ฐ 2 ๋ฑ์ฅ, 9์ ๊ฒฝ์ฐ 3๋ฑ์ฅ) ๊ทธ๋ฆฌ๊ณ ์ ๊ณฑ์์ ๊ฒฝ์ฐ 1+2+3+..n+n-1+n-2+...1 ์ฆ ํ์๋ ํญ์ ์์ ์ ๊ณฑ๊ทผ +1์ด๋ค. (4์ ๊ฒฝ์ฐ ๋ฃจํธ4+1. ์ฆ 3์ด๋ค.)
๊ทธ๋ฆฌ๊ณ 5 6 7 8์ ๋ณด๋ฉด 56์๊ฒฝ์ฐ 4๋ฒ, 78์ 5๋ฒ์ธ๋ฐ 6์ 2+4๋ก ๋ํ๋ผ ์ ์๋ค๋ ์ฌ์ค์ ์ฃผ๋ชฉํ์.
๋น์ทํ ์์๋ก 9์ 16์ฌ์ด์์ ํ์๊ฐ ๋ฐ๋๋ ๋ถ๋ถ์ธ 12์ญ์ 3+9์ด๋ค. ์ฝ๋๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.
์ฝ๋
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
long long a, b;
cin >> T;
while (T != 0) {
cin >> a >> b;
int go =(int)sqrt(b - a);
if (b - a < 4) {
cout << b - a<<"\n";
}
else {
//์ ๊ณฑ์์ ๊ฒฝ์ฐ ex)4
if (b - a == go * go) {
cout << 2 * go - 1 << "\n";
}
//๊ฑฐ๋ฆฌ+๊ฑฐ๋ฆฌ์ ์ ๊ณฑ๊ทผ๋ณด๋ค ํด ๊ฒฝ์ฐ ex)7,8
else if (go * go + go < b - a) {
cout << go * 2 + 1 << "\n";
}
//๊ฑฐ๋ฆฌ+๊ฑฐ๋ฆฌ์ ์ ๊ณฑ๊ทผ๋ณด๋ค ์์ ๊ฒฝ์ฐex)5,6
else {
cout << go * 2 << "\n";
}
}
T--;
}
}
'์ฝ๋ฉํ ์คํธ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 14889] ์คํํธ์ ๋งํฌ (C++) (0) | 2022.01.05 |
---|---|
[๋ฐฑ์ค 9461] ํ๋๋ฐ ์์ด (C++) (0) | 2021.12.03 |
[๋ฐฑ์ค 1065] ํ์ (C++) (0) | 2021.12.01 |
[๋ฐฑ์ค 1541] ์์ด๋ฒ๋ฆฐ ๊ดํธ(C++) (0) | 2021.08.13 |
[๋ฐฑ์ค 1676]- ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์(C++) (0) | 2021.07.30 |
๋๊ธ