Skip to content

Instantly share code, notes, and snippets.

View sgc109's full-sized avatar
๐Ÿ 

Wood Hwang sgc109

๐Ÿ 
View GitHub Profile
@sgc109
sgc109 / srm503easy.cpp
Last active March 4, 2017 07:56
SRM 503 Div1 Level 1 - ToastXToast
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11204
ํƒ„๊ฒƒ๊ณผ ๋œ์ต์€๊ฒƒ์„ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ์— ๋‹ด์•„์„œ X๊ฐ’์œผ๋กœ ์ •๋ ฌํ–ˆ์„๋•Œ
๋งจ์™ผ์ชฝ์ด ํƒ„๊ฒƒ์ด๊ฑฐ๋‚˜ ๋งจ์˜ค๋ฅธ์ชฝ์ด ๋œ์ต์€๊ฒƒ์ด๋ฉด ๋ฌด์กฐ๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ 
๋งŒ์•ฝ ์•„๋‹ˆ๋ผ๋ฉด, ํ•œ๊ฐ€์ง€ ์‚ฌ์‹ค์„ ํŒŒ์•…ํ•ด์•ผํ•œ๋‹ค. ์–‘๋์˜ ๋‘๊ฐœ๋ฅผ ์ œ์™ธํ–ˆ์„๋•Œ
๋ชจ๋“  ํƒ„ ๋นต์€ ๋งจ์™ผ์ชฝ์—์žˆ๋˜ ๋œ์ต์€ ๋นต๊ณผ ๋งค์น˜์‹œํ‚ฌ์ˆ˜์žˆ๊ณ 
๋ชจ๋“  ๋œ์ต์€ ๋นต์€ ๋งจ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋˜ ํƒ„ ๋นต๊ณผ ๋งค์น˜ ์‹œํ‚ฌ์ˆ˜๊ฐ€์žˆ์œผ๋ฏ€๋กœ ๋‹ต์€ 2๋ณด๋‹ค ์ปค์งˆ์ˆ˜๊ฐ€์—†๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋”ฑ ํ•œ ๊ฒฝ์šฐ์— ๋‹ต์ด 1์ด ๋œ๋‹ค.
๋ฐ”๋กœ ๋ชจ๋“  ๋œ์ต์€๋นต์ด ๋ชจ๋“  ํƒ„๋นต๋ณด๋‹ค ์™ผ์ชฝ์— ์žˆ์„ ๋•Œ ์ด๋‹ค.
@sgc109
sgc109 / srm504easy.cpp
Last active March 4, 2017 07:56
SRM 504 Div1 Level1 - MathContest
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11233
๊ทธ๋ƒฅ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๋ฉด๋œ๋‹ค
์ธ์ž๋กœ๋Š” ์ƒํ•˜๋ฐ˜์ „์—ฌ๋ถ€์™€ ์ƒ‰๋ฐ˜์ „์—ฌ๋ถ€ ๊ทธ๋ฆฌ๊ณ  ๋‚จ์•„์žˆ๋Š” ์™ผ์ชฝ๋๊ณผ ์˜ค๋ฅธ์ชฝ๋๋งŒ ๊ฐ€์ง€๊ณ ์žˆ์œผ๋ฉด๋œ๋‹ค
์™œ๋ƒํ•˜๋ฉด ๊ณต์„ ๋นผ๋„ ์–‘ ๋์œผ๋กœ๋งŒ ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์šด๋ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๊ฒŒ ๋˜๊ธฐ๋–„๋ฌธ์— ์ขŒ ํ˜น์€ ์šฐ๋กœ ํ•œ์นธ์”ฉ๋งŒ ๋ณ€ํ•˜๊ฒŒ ๋˜๊ธฐ๋•Œ๋ฌธ์ด๋‹ค.
์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N) ์ฆ‰ 10๋งŒ๋ฒˆ์ •๋„ ๋ˆ๋‹ค.
*/
#include <bits/stdc++.h>
@sgc109
sgc109 / srm506medium.cpp
Created March 4, 2017 09:45
SRM 506 Div1 Level2 - SlimeXGrandSlimeAuto
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11334
์ฒ˜์Œ์—” ์ƒํƒœ๋“ค์„ ์ž˜ ์ •์˜ํ•œ๋’ค ๊ทธ๋ž˜ํ”„๋ฅผ ํ˜•์„ฑํ•ด์„œ ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ๋Œ๋ฆฌ๋Š” ์‹์œผ๋กœ ํ’€ ์ˆ˜๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ
์‰ฝ์ง€์•Š์•˜๋‹ค. ์•„๋งˆ ์ง€๊ธˆ๊นŒ์ง€ ๊ทธ๋ ‡๊ฒŒ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋“ค์€ ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ๋Œ€๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
์ถœ๋ฐœ์ง€์™€ ๋„์ฐฉ์ง€๋งŒ ์ฃผ์–ด์ง€๊ณ  ์ถœ๋ฐœ์ง€์—์„œ ๋„์ฐฉ์ง€๋กœ ์ด๋™ํ•˜๋Š” ๊ฐ€์žฅ ์ ์€ ๋น„์šฉ์„ ๋ฌป๋Š” ๋ฌธ์ œ์˜€๋˜๊ฒƒ๊ฐ™๊ณ 
์ด ๋ฌธ์ œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์ฃผ์–ด์ง€๊ณ  ๋ฐ˜๋“œ์‹œ ๊ทธ ๊ฒฝ๋กœ๋Œ€๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋ฉด์„œ ํ•œ์ •๋œ ์ž์›์ด ์กด์žฌํ•  ๋•Œ์— ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ๋Š” network flow graph ๋กœ ํ’€ ์ˆ˜๊ฐ€ ์žˆ๊ณ  ์ตœ์†Œ ๋น„์šฉ์„ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— mcmf ๋กœ ํ’€ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.
์šฐ์„  ํ•œ๊ฐ€์ง€ ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•„์•ผ ํ•œ๋‹ค. ๊ฒฝ๋กœ๊ฐ€ ์ฃผ์–ด์กŒ์œผ๋‹ˆ k๋ฒˆ์งธ ๋„์‹œ๊ฐ€ ์ถœ๋ฐœ์ง€์ผ๋•Œ k+1๋ฒˆ์งธ ๋„์‹œ๋Š” ๋„์ฐฉ์ง€๋ผ๊ณ  ๋ณผ ์ˆ˜๊ฐ€์žˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ๋งจ์ฒ˜์Œ 0๋ฒˆ๋„์‹œ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์„๋•Œ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋„์‹œ๋“ค์˜ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ M ์ด๋ผ๋ฉด
@sgc109
sgc109 / srm503medium.cpp
Last active March 5, 2017 06:19
Member SRM 503 Div1 Level2 - KingdomXCitiesandVillages
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11063
์šฐ์„  Linearity of expectation ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.
๊ทธ๋‹ˆ๊นŒ ๊ฑด์„คํ•œ ๋„๋กœ๋“ค์˜ ๊ธธ์ด์˜ ์ด ํ•ฉ์˜ ๊ธฐ๋Œ€๊ฐ’์€
๊ฐ๊ฐ์˜ ๋„๋กœ์˜ ๊ธธ์ด์˜ ๊ธฐ๋Œ€๊ฐ’๋“ค์˜ ์ด ํ•ฉ๊ณผ ๊ฐ™๋‹ค๋ผ๋Š” ๊ฒƒ์ด๋‹ค.
Editorial ์— ์žˆ๋Š” ์‹์„ ์ธ์šฉํ•˜์ž๋ฉด
Expected Length of all roads build after picking all villages =
Expected Length (Sum of lengths of the roads built when village i is picked, for all i) =
@sgc109
sgc109 / srm500easy.cpp
Created March 5, 2017 05:59
SRM 500 Div1 Level1 - MafiaGame
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11342
์ฒ˜์Œ์— ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด์„์ด ๋„ˆ๋ฌด์•ˆ๋ผ์„œ ๋ฐฉ์น˜ํ•ด ๋†“๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ๋‚ ์žก๊ณ  ์Šค์Šค๋กœ ํ’€์—ˆ๋‹ค.
ํ™•๋ฅ ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ์ˆจ๊ฒจ์ง„ ๊ทœ์น™์˜ ๋ฐœ๊ฒฌ์ด ์š”๊ตฌ๋˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
์šฐ์„  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ทœ์น™์„ ๋ฐœ๊ฒฌํ•ด์•ผํ•˜๋Š”๋ฐ
๋งจ ์ฒ˜์Œ์— definite decisions ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค๋ฅธ์‚ฌ๋žŒ์—๊ฒŒ ์„ ํƒ๋œ ์ˆ˜๋ฅผ ๊ฐ๊ฐ์˜ ์‚ฌ๋žŒ๋งˆ๋‹ค ์„ธ์–ด๋ณด๋ฉด
ํ•œ ๋ช…์—๊ฒŒ๋„ ์„ ํƒ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์€ 0, ํ•œ ๋ช…์—๊ฒŒ ์„ ํƒ๋œ ์‚ฌ๋žŒ์€ 1, ... ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ€๊ฒŒ๋˜๋Š”๋ฐ
์„ ํƒ๋œ ํšŸ์ˆ˜๊ฐ€ ๋ชจ๋‘ 0 ๋˜๋Š” 1์ด๋ผ๋ฉด ๋‹ค์Œ๋ฒˆ round ์—๋„ ๋ชจ๋‘๊ฐ€ vulerable ํ•ด์ง„๋‹ค. ์™œ๋ƒํ•˜๋ฉด
definite decisions ์— ํฌํ•จ ๋˜์ง€์•Š์€ ๋‚˜๋จธ์ง€ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ์ ๊ฒŒ ๋ฝ‘ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๋žœ๋คํ•˜๊ฒŒ ๋ฝ‘๊ฒŒ๋˜๋Š”๋ฐ
@sgc109
sgc109 / srm507easy.cpp
Created March 6, 2017 02:13
SRM 507 Level1 - CubeStickers
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11315
๋‹จ์ˆœํ•œ ๊ทธ๋ฆฌ๋””+๊ตฌํ˜„+์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ์ด๋‹ค.
map ์— ์ƒ‰์„ key ๊ฐ’์œผ๋กœ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ค€๋’ค ๋‘๊ฐœ์ด์ƒ์ด ์žˆ๋Š” ์ƒ‰์ด์žˆ์œผ๋ฉด ๋ฌด์กฐ๊ฑด
๋งˆ์ฃผ๋ณด๋Š” ๋‘ ๋ฉด์— ์“ฐ๊ณ  ๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ด๋“์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ‰๋“ค์€ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ๋ถ™์—ฌ๋„ ๋œ๋‹ค.
*/
#include <bits/stdc++.h>
@sgc109
sgc109 / srm504mid.cpp
Created March 6, 2017 04:42
SRM 504 Level2 - AlgridTwo
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11355
์ผ๋‹จ ๋ช‡๊ฐ€์ง€๋ฅผ ์บ์น˜ํ•ด์•ผํ•œ๋‹ค.
์šฐ์„  ๋งจ์œ—์ค„์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํŠน์ • ์ค„์€ ๋ฌด์กฐ๊ฑด ๋ฐ”๋กœ ์œ—์ค„์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ƒ‰์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ˆœ์„œ๋ฅผ ์•Œ์ˆ˜์žˆ๋Š”๋ฐ
ํŠน์ • ์ค„์„ ๋ณผ๋•Œ๋Š” ์ด๋ฏธ ์œ—์ค„์ด ๋ฐ”๋€ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” output์ƒ์—์„œ์˜ ๋ฐ”๋กœ์œ—์ค„๊ณผ ๊ฐ™์€์ƒํƒœ์—์„œ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๊ฒƒ์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ ๋‘๊ฐ€์ง€๋ฅผ ์ž˜ ๋”ฐ์ ธ์ค˜์•ผํ•œ๋‹ค.
์ฒซ๋ฒˆ์งธ๋Š” W์™€ B ๋‘˜๋‹ค ๊ฐ€๋Šฅํ•œ ๊ณณ์ด ์ƒ๊ธฐ๋Š” ์กฐ๊ฑด๋“ค
๋‘๋ฒˆ์งธ๋Š” ํŠน์ • ์œ„์น˜๊ฐ€ ๋ฌด์กฐ๊ฑด W๋‚˜ B์ค‘ ํ•œ๊ฐ€์ง€ ์—ฌ์•ผํ•˜๋Š” ์กฐ๊ฑด๋“ค
@sgc109
sgc109 / srm504mid(2).cpp
Created March 6, 2017 05:26
SRM 504 Level2 - AlgridTwo(2)
/*
์šฐ์„  ๋ช‡๊ฐ€์ง€ ๋ฐœ๊ฒฌํ•ด์•ผ ํ•˜๋Š” ๊ทœ์น™๋“ค์€ ์•ž์˜ ํ’€์ด์™€ ๊ฐ™๊ณ  ์กฐ๊ฑด๋“ค์— ๋Œ€ํ•ด ๋ชจ๋“  ํŒจํ„ด์„ ๋”ฐ์ ธ์ฃผ์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ตฌํ˜„๋„ ๊ฐ„๋‹จํ•˜๊ณ  ๊น”๋”ํ•œ ํ’€์ด๊ฐ€ ์žˆ๋‹ค.
๋ฐ˜๋Œ€๋กœ ๋’ค์—์„œ ๋ถ€ํ„ฐ ๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ์ „์— ๋ญ๊ฐ€ ์žˆ์—ˆ์„์ง€ ๋ชจ๋ฅด๋Š”๊ฑด ? ๋ผ๋Š” ๋ณ„๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ ์ •ํ•ด์„œ ํ‘œ์‹œ๋ฅผ ํ•ด์ฃผ๊ณ  BB ์ผ๊ฒฝ์šฐ
์•„๋ž˜ ๋‘๊ฐœ๋ฅผ ์‹ค์ œ๋กœ swap์„ ํ•ด์ฃผ๋ฉฐ WB ๋‚˜ BW ์ผ๊ฒฝ์šฐ๋Š” ๋‘˜๋‹ค ์•„๋ž˜ ๋‘๊ฐœ๋ฅผ ??๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค. WW์ผ๋• ๊ฐ€๋งŒํžˆ ๋‘๋ฉด๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์— ?์˜ ๊ฐœ์ˆ˜๋งŒํผ 2๋ฅผ ๊ณฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ฌผ๋ก  ์ค‘๊ฐ„์— ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋ฅผ ๋”ฐ์ ธ์ค˜์•ผํ•˜๋Š”๋ฐ ์ด๊ฑด WB์ผ๋•Œ์™€ BW์ผ๋•Œ ์•„๋ž˜์— ๊ฐ๊ฐ B๋‚˜ W๊ฐ€
ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์ด๊ณ  ๊ฐ๊ฐ W์™€ B๋Š” ์žˆ์–ด๋„๋˜๊ณ  ?๋Š” ๋‘˜๋‹ค ์–ธ์ œ๋“ ์ง€ ์žˆ์–ด๋„ ๋œ๋‹ค.
*/
#include <bits/stdc++.h>
#define REP(i,a,b) for(int i=a;i<=b;++i)
@sgc109
sgc109 / srm507mid.cpp
Created March 9, 2017 00:56
SRM 507 Level2 - Cube Packing
/*
์šฐ์„  1x1x1 ํ๋ธŒ๋“ค๊ณผ LxLxL ํ๋ธŒ๋“ค์˜ ๋ถ€ํ”ผ์˜ ์ดํ•ฉ์„ ๊ตฌํ•ด๋ณด๋ฉด
Ns+Nb*L^3 ์ธ๋ฐ ์ด๊ฒƒ์„ T ๋ผ๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋Ÿผ ์ ์–ด๋„ ์šฐ๋ฆฌ๊ฐ€ ์ด ํ๋ธŒ๋“ค์„ ํฌ์žฅํ•˜๋Š” ํ•˜๋‚˜์˜ ํ๋ธŒ์˜ ๋ถ€ํ”ผ V๋Š” T๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด T๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ชจ๋“  V์— ๋Œ€ํ•ด ๊ฒ€์‚ฌํ•ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋”ฐ์ ธ์ค˜์•ผ ํ•  ๊ฒƒ์ด ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.
์ฒซ๋ฒˆ์งธ๋กœ ํ๋ธŒ์˜ ๋ชจ์„œ๋ฆฌ์˜ ๊ธธ์ด๋ฅผ x,y,z ๋ผ๊ณ ํ• ๋•Œ x<=y<=z ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•ด์ค˜์•ผ ์…Œ๋˜๊ฒƒ์„ ๋˜ ์•ˆ์„ผ๋‹ค. ํšŒ์ „ํ•˜๋ฉด ๊ฒฐ๊ตญ ๊ฐ™์€๊ฒŒ ๋‚˜์˜ค๊ธฐ๋•Œ๋ฌธ์ด๋‹ค.
(๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— x^3 <= 2e9 ์ผ ๊ฒƒ์ด๋‹ค)
๋‘๋ฒˆ์งธ๋กœ ์ง€๊ธˆ ๋ณด๋Š” V์˜ ๋ถ€ํ”ผ๊ฐ€ T๋ณด๋‹ค ํฌ๋‹ค ํ• ์ง€๋ผ๋„ Nb๊ฐœ์˜ ํ๋ธŒ๊ฐ€ ๋ชจ๋‘ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๋ถ„๋ฆฌ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ
LxLxL ํ๋ธŒ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด ์ค˜์•ผํ•˜๋Š”๋ฐ ์ด๊ฒƒ์€ (x/L)*(y/L)*(z/L) ์ด๋‹ค. ์ด๊ฒƒ์ด Nb๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€์ง€๋ฅผ ๋ด์ฃผ๋ฉด๋œ๋‹ค.
์„ธ๋ฒˆ์งธ๋กœ x์™€ y๊ฐ€ ์ •ํ•ด์ง€๋ฉด x*y*z๊ฐ€ T๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ตœ์†Œ z๊ฐ€ ์ •ํ•ด์งˆํ…๋ฐ
์ด ์ตœ์†Œz๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ z๊ฐ’์„ ๋‹ค ๋ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฑ ์ด๊ฑฐ ํ•˜๋‚˜๋งŒ ๋ด์ฃผ๋ฉด๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„๋Š”
@sgc109
sgc109 / srm508easy.cpp
Last active March 11, 2017 08:23
SRM 508 Level1 - DivideAndShift
/*
https://community.topcoder.com/stat?c=problem_statement&pm=11434
์ด ๋ฌธ์ œ๋Š” ์ˆ˜ํ•™์  ์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค. ์šฐ์„  ๋ฌธ์ œ์—์„œ ์นธ๋“ค์ด K๊ฐœ๊ฐ€ ์žˆ์„ ๋•Œ K์˜ ์•ฝ์ˆ˜์ด๋ฉด์„œ ์†Œ์ˆ˜์ธ ์ˆ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ
์ด๊ฒƒ์€ ๋ฐ”๋กœ ๋งค ํšŒ์— ์†Œ์ธ์ˆ˜๋กœ ํ•œ๋ฒˆ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด๋ฅผ ํ–ˆ์„ ๋•Œ ์†Œ์ธ์ˆ˜๋“ค์˜ ์ง€์ˆ˜ ๋“ค์„ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์ด
์ตœ๋Œ€ํ•œ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜์ธ ๊ฒƒ ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํŠน์ • ์นธ์„ ๊ฐ€์ ธ๊ฐ€๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ํšŸ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์น˜๋ฉด ๊ทธ ์ตœ์ ํ•ด๋Š”
๋ช‡๋ฒˆ์€ ๋‚˜๋ˆŒ๊ฒƒ์ด๊ณ  ๋ช‡๋ฒˆ์€ ์˜†์œผ๋กœ ์ด๋™์‹œํ‚ฌ ๊ฒƒ์ด๋‹ค. ์šฐ์„  ๋‚˜๋ˆ„๋Š” ํ–‰์œ„๋ฅผ ๋จผ์ € ๋ณด๋ฉด ๊ฐ๊ฐ์˜ ์†Œ์ธ์ˆ˜ ๋งˆ๋‹ค ๋‚˜๋ˆ„๋Š” ํšŸ์ˆ˜๊ฐ€ ์žˆ์„ ๊ฑฐ๊ณ  ๊ทธ ํšŸ์ˆ˜๋Š” 0์ผ ์ˆ˜๋„ ์žˆ์„๊ฒƒ์ด๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ๊ฐ์˜ ์†Œ์ธ์ˆ˜์— ๋Œ€ํ•˜์—ฌ ๋‚˜๋ˆ„๋Š” ํšŸ์ˆ˜๋“ค์˜ ๋ชจ๋“  ์กฐํ•ฉ์— ๋Œ€ํ•œ ๊ฒฝ์šฐ๋“ค์„ ๋ชจ๋‘ ๋ณด๋ฉด์„œ
์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋ฅด๋ ค๊ณ ํ•˜๋Š” ๋†ˆ์ด ๋งจ ์™ผ์ชฝ ์นธ์œผ๋กœ ๋ถ€ํ„ฐ ๋ช‡ ๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€ ๋ด์„œ ๊ทธ์ค‘ ์ตœ์†Œ ๊ฐ’์ด ๋‹ต์ด ๋ ๊ฒƒ์ด๋‹ค.
๋ฌผ๋ก  ๋งจ ์™ผ์ชฝ ์นธ์œผ๋กœ ๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๋Š” min(์ขŒ์ธก์œผ๋กœ ๊ฐ”์„๋•Œ ๊ฑฐ๋ฆฌ, ์šฐ์ธก์œผ๋กœ ๊ฐ”์„๋Œ€ ๊ฑฐ๋ฆฌ) ์ผ ๊ฒƒ์ด๋‹ค.