Codeforces Round 938 (Div. 3)
(2/8)
B๋ฒ์ ํ์๊ฐ๋์ ํ์ด๋ฒ๋ ค์ ์๊ฐ์ด ๋ง์ด ๋ถ์กฑํ๋ค. ์ข๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค.
C
์๋ํ ๋ฆฌ์ผ ๋ณด๋๊น ์๊ฐ์์ฒด๋ ๋ง์๋๋ฐ ํ์ง ๋ชปํ๋ค. ๊ทธ๋๋ก ๊ตฌํํ๊ณ ์ ์ถํ์ผ๋ฉด ๋ง์์๊ฑฐ๊ฐ์๋ฐ B์์ ์๊ฐ๋๋ฆฐ๊ฒ ๋๋ฌด ํฐ๊ฑฐ๊ฐ๋ค.
๋ฌธ์
ํฌ๋ผ์ผ์ด ๋งจ์/๋งจ๋ค์ ๋ฐฐ๋ฅผ ์์๋๋ก ๊ณต๊ฒฉํ๋ค.
๊ณต๊ฒฉ ํ๋ฒ๋น ๋ฐฐ์ ๋ด๊ตฌ๋๋ 1์ฉ ๊ฐ์ํ๊ฒ ๋๊ณ , ๋ด๊ตฌ๋๊ฐ 0์ด๋ ๋ฐฐ๋ ์นจ๋ชฐํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์นจ๋ชฐํ๋ ๋ฐฐ์ ๊ฐ์๋?
์ ๊ทผ
๊ณต๊ฒฉ ํ์ k๊ฐ 10^15์ด๊ธฐ ๋๋ฌธ์ ์์ ํ์์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ๋งค์ฐ ํฐ ์ ๊ฐ ์ ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ์ํ์ ์ธ ํ ํฌ๋์ด ํ์ํ ๊ฒ์ด๋ผ๊ณ ์์๋๋ ๋ฌธ์ ์๋ค.
๋ฌธ์ ์์ฒด๋ ์ดํดํ๊ธฐ ์ฌ์ ๊ณ , ์ด๋ป๊ฒ ๋ฐ๋ณต๋ฌธ์ ํ์๋ฅผ ์ค์ด๋. ๋ผ๋ ์๊ฐ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทผํ๊ฒ ๋์๋ค.
๋ฐฐ๊ฐ ์นจ๋ชฐํ๋ฉด ์/๋ค๋ก ๋ค๋ฅธ ๋ฐฐ๊ฐ ๊ณต๊ฒฉ์ ๋ฐ๊ฒ ๋๊ณ , ๋ฐฐ์ ๊ฐ์๋ ์ต๋ 2*10^5๊ฐ ์ด๋ฏ๋ก ๋ฐฐ์ ๊ฐ์๊ฐ ๊ธฐ์ค์ด ๋์ด ๋ฌธ์ ๋ฅผ ํ์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋งจ์/๋งจ๋ค ๋๊ฐ์ ๋ฐฐ๋ฅผ ๊ธฐ์ค์ผ๋ก, ๋๊ฐ์ ๋ฐฐ์ ๋ด๊ตฌ๋ ์ค ์์ ๊ฐ์ ๊ตฌํ๋ค. (minDuration)
minDuration * 2๊ฐ ํฌ๋ผ์ผ์ด ์ผ๋ง๋ ๊ณต๊ฒฉ์ ํ๋์ง์ ๋ํ ์ ๋ณด์ด๋ฏ๋ก
K(ํฌ๋ผ์ผ์ ๊ณต๊ฒฉ ํ์)๊ฐ minDuration*2๋ณด๋ค ํฌ๋ค๋ฉด
K -= minDuration * 2;
arr[l] -= minDuration; // ์ฒซ๋ฒ์งธ ๋ฐฐ
arr[r] -= minDuration; // ๋ง์ง๋ง ๋ฐฐ
K๊ฐ minDuration * 2๋ณด๋ค ์๋ค๋ฉด
if(k%2 == 1){
arr[l] -= k/2+1;
arr[r] -= k/2;
}
else {
arr[l] -= k/2;
arr[r] -= k/2;
}
๋ฅผ ํด์ฃผ๊ฒ ๋๋ค.
์ฌ๊ธฐ์ K๊ฐ ํ์๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ์ฒซ๋ฒ์งธ ๋ฐฐ๋ฅผ ํ๋ฒ ๋ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ์ด ๋๋ค.
์ด ๊ณผ์ ์ ๋ฐ๋ณตํด์ K๊ฐ 0์ด ๋๊ฑฐ๋, ๋งจ ์ ๋ฐฐ๋ฅผ ๊ฐ๋ฆฌํค๋ l , ๋งจ ๋ค ๋ฐฐ๋ฅผ ๊ฐ๋ฆฌํค๋ r์ด l > r์ด ๋๋ค๋ฉด ๋์ด์ ๊ณต๊ฒฉ์ ํ ์ ์์ผ๋ฏ๋ก ์ข ๋ฃํ๋ฉด ๋๋ค.
l == r ์ธ ๊ฒฝ์ฐ(๋ฐฐ๊ฐ ํ๋ ๋จ์์ ๊ฒฝ์ฐ)๋ง ๋ฐ๋ก ์๊ฐํ์ฌ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค.
D
๊ธธ์ด๊ฐ N์ธ ์ ์ ๋ฐฐ์ด, M์ธ ์ ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๊ณ (N>M) M์ ์์๋ค์ ๋์ดํด์ N์ subsequence์ ๋ง๋ ์์์ ๊ฐ์๊ฐ K๊ฐ ์ด์์ธ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ์ฌ๋ผ.
๊ธธ์ด๊ฐ N์ธ ๋ฐฐ์ด์ 0 ~ M-1 ์ธ๋ฑ์ค ๊ธฐ์ค์ผ๋ก ๊ธธ์ด๊ฐ M์ธ ๋ฐฐ์ด์ ์์์ ๊ฐ์๋ฅผ ์ ์ฅํด ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ก ์ฒดํฌํ๋ ๋ฐฉ์์ ์๊ฐํ์ง๋ง
2N + M์ ์๊ฐ๋ณต์ก๋๋ก ๋๋ต 3์ด์ ๋ ๋์์ ์คํจํ๋ค..
์๋ํ ๋ฆฌ์ผ์ ๋ณด๋ ์์ด๋์ด ์์ฒด๋ ์ด๊ฒ ๋ง์๋ค.
๋ค๋ง ๋ฉํฐ์ ์ ์ฌ์ฉํด์ ์ฒดํฌํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์ง ๋ชปํ๋ค. ๊ฐ์ด ์ค๋ณต๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฉํฐ์ ์ ์ฌ์ฉํ๋ค. ์ค๋ณต๋์ง ์๋๋ค๋ฉด ์ ์ ์ฌ์ฉํ๋ฉด ๋ ๊ฑฐ๊ฐ๋ค.