algorithm

Codeforces Round 938 (Div. 3)

rkawk 2024. 5. 2. 00:42

(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์ดˆ์ •๋„ ๋‚˜์™€์„œ ์‹คํŒจํ–ˆ๋‹ค..

 

์—๋””ํ† ๋ฆฌ์–ผ์„ ๋ณด๋‹ˆ ์•„์ด๋””์–ด ์ž์ฒด๋Š” ์ด๊ฒŒ ๋งž์•˜๋‹ค.

๋‹ค๋งŒ ๋ฉ€ํ‹ฐ์…‹์„ ์‚ฌ์šฉํ•ด์„œ ์ฒดํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ฐ’์ด ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ์…‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์…‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊ฑฐ๊ฐ™๋‹ค.