Hanpan home
Hanpan Studio home
Hanpan
·STUDIO
HanpanProblemsContestsSubmissionsRankingEvents
My problemsMy contests
StatementPlaySubmit codeLeaderboardSubmissions
Challenge #7

아스타의 전파송

Participant time limit
1,000 ms
Memory limit
512 MB
Submissions
34
Participants
4

The English statement is unavailable. The Korean statement is shown instead.

On this page
  • Problem
  • Input
  • Example
  • Sample code

Problem

아스타의 전파송에서는 60×9660 \times 9660×96 크기의 육각형 칸 지도 위에 아스타가 만든 전파송을 퍼뜨려 사람들을 중독시켜야 합니다. 아스타의 전파송이 경쟁사들의 비슷한 음원에 밀려 퇴물이 되기 전에, 사람들을 되도록 많이 중독시키는 것이 목표입니다.

1. 지도와 칸

지도는 육각형 칸이 606060행 969696열로 배열된 형태입니다. 행 번호는 위에서 아래로 111행부터 606060행, 열 번호는 왼쪽에서 오른쪽으로 111열부터 969696열까지이며, rrr행 ccc열의 칸을 (r,c)(r,c)(r,c)로 표기합니다. 두 칸 사이의 거리는 인접한 칸으로 이동하는 가장 적은 횟수이며, 바다와 산도 한 칸으로 계산합니다.

각 칸은 다음 일곱 가지 중 하나입니다.

그림 글자 칸 설명
평지 . 평지 사람이 사는 칸입니다.
오지 : 오지 사막 또는 눈이 덮인 곳입니다. 처음에는 팬이 평지의 절반 빠르기로 불어납니다.
시골 % 시골 처음에는 팬이 평지의 절반 빠르기로 불어납니다. 내성 칸이 되지 않습니다.
바다 ~ 바다 사람이 살지 않습니다. 스킬 없이는 전파송이 이동할 수 없습니다.
산 ^ 산 사람이 살지 않습니다. 스킬 없이는 전파송이 이동할 수 없습니다.
핫플 C 핫플 사람이 많이 사는 평지입니다. 경쟁사 본사를 포함해 363636곳입니다.
경쟁사 본사 L 경쟁사 본사 경쟁사 본사가 있는 핫플입니다. 핫플 중 999곳이 경쟁사 본사가 있는 칸이며, 번호가 적힌 육각형 칸으로 표시됩니다.

평지·오지·시골·핫플·경쟁사 본사를 사람 칸이라고 합니다. 지도의 모양과 칸 인구, 팬이 처음 생기는 첫 무대 칸, 뉴스 편성표는 시드마다 다르게 정해지며 게임을 시작할 때 모두 주어집니다. 시드는 게임마다 다른 수입니다. 게임에는 무작위 요소가 없습니다. 같은 지도와 편성표에서 같은 차례로 스킬을 사면 결과가 항상 같습니다.

칸의 사람은 다음 네 가지로 나뉩니다.

  • 일반인: 아직 전파송을 모르는 사람입니다.
  • 팬: 전파송에 빠지기 시작해 주변으로 퍼뜨리는 사람입니다.
  • 중독자: 전파송에서 헤어날 수 없는 사람입니다.
  • 내성자: 경쟁사의 비슷한 음원으로 갈아타, 더는 전파송이 먹히지 않는 사람입니다.

게임을 시작할 때 첫 무대 칸에는 팬 101010명이 있고, 나머지 사람은 모두 일반인입니다. 모든 칸 인구의 합을 세계 인구라고 합니다.

바다나 산을 지나지 않고 인접한 사람 칸끼리 연결된 묶음을 땅덩이라고 합니다.

퇴물됨으로 끝난 게임의 195턴 화면

'퇴물됨' 엔딩으로 종료된 게임 화면입니다. 그림의 번호는 다음을 가리킵니다.

  1. 팬이 많은 칸(노랑 칸)
  2. 중독자가 많은 칸(분홍 칸)
  3. 내성 칸(초록 칸)
  4. 비슷한 음원을 출시한 경쟁사(숫자 7이 적힌 초록색 칸)
  5. 마비된 경쟁사(숫자 8이 적힌 반투명한 칸)
  6. 평상시 경쟁사(숫자 6이 적힌 하얀 칸)
  7. 팬이 많은 핫플의 팬 수(테두리가 굵은 진한 노랑 칸)
  8. 유행을 감지한 경쟁사(숫자 4가 적힌 칸)

8이 가리키는 경쟁사 오른쪽의 네모 속 숫자는 비슷한 음원 출시까지 남은 턴입니다.

팬·중독자·내성 칸의 색

왼쪽부터 팬이 많은 칸의 노랑 네 단계, 중독자가 많은 칸의 분홍 다섯 단계, 내성 칸의 초록(민트)입니다. 한 칸은 팬과 중독자 중 많은 쪽의 색 하나로 칠하며, 중독자가 팬보다 많거나 같으면 분홍입니다. 많은 쪽이 칸 인구에서 차지하는 비율이 클수록 색이 짙어집니다. 팬이 칸 인구의 5%5\%5% 이상인 칸 무리의 둘레에는 금색 선 테두리가 생깁니다.

경쟁사의 네 상태

경쟁사는 왼쪽부터 평상시, 유행 감지함, 비슷한 음원 출시, 마비 상태입니다. 유행을 감지한 경쟁사 오른쪽의 숫자는 비슷한 음원 출시까지 남은 턴이며, 111이면 다음 턴에 출시합니다.

2. 게임 진행

한 턴에는 스킬 하나를 사거나 사지 않습니다. 그 뒤 다음 과정이 순서대로 진행됩니다.

  1. 증식: 팬이 있는 칸마다 팬이 증식 비율만큼 불어납니다. 핫플에서는 증식 비율에 핫플 증식 비율을, 오지에서는 오지 증식 비율을, 시골에서는 시골 증식 비율을 곱해 100100100으로 나눈 비율만큼 불어납니다. 칸에 남은 일반인이 적을수록 불어나는 수가 적습니다.
  2. 번짐: 한 칸의 팬 수가 번짐 기준 이상이면, 해당 칸에서 인접한 사람 칸으로 전파송이 번집니다. 스킬 없이는 바다와 산 너머로 번지지 않습니다. 팬이 없고 내성 칸이 아니며 일반인이 있는 칸에만 번지고, 새로 번진 칸은 칸 인구의 첫 팬 비율만큼의 팬으로 시작합니다. 번짐으로 새로 팬이 생긴 칸은 그 턴에 다시 번지지 않습니다.
  3. 중독: 팬 중에서 중독성만큼이 중독자가 됩니다. 처음 중독성은 0%0\%0%이고 중독성 스킬을 사기 전에는 아무도 중독되지 않으며, 중독자는 다시 팬으로 되돌아오지 않습니다. 팬이 중독자가 되어 팬 수가 줄어들면 번짐이 멈출 수 있습니다.
  4. 내성 칸: 내성 칸은 비슷한 음원을 출시한 경쟁사 본사 칸에서 생겨, 홀수 번째 턴마다 인접한 칸 중 시골이 아닌 사람 칸으로 넓어집니다. 새로 내성 칸이 된 칸의 일반인은 모두 내성자가 됩니다. 또 턴마다 모든 내성 칸에서 팬 중 내성 칸 회복 비율만큼이 내성자가 됩니다. 내성자는 다시 팬이 되지도 중독되지도 않으며, 내성자가 한 명이라도 생기면 '전원 중독' 엔딩이 성립하지 않습니다.
  5. 경쟁사: 전체 팬 수가 유행 따라하기 기준 이상이 되면 전 세계적으로 유행 따라하기가 시작되며, 시작된 뒤로는 끝나지 않습니다. 경쟁사의 상태는 다음과 같이 바뀝니다.
    • 평상시 경쟁사는 본사에서 감시 범위 이내인 칸들의 팬 합이 유행 감지 기준 이상이 되면 유행 감지함 상태가 됩니다. 또한 유행 따라하기가 시작되었으면 유행 감지함 상태가 됩니다.
    • 유행 감지함 상태가 된 경쟁사는 비슷한 음원을 준비하고, 일정 턴이 지나면 비슷한 음원을 출시합니다. 출시한 경쟁사 본사 칸은 내성 칸이 되고, 해당 칸의 일반인은 모두 내성자가 됩니다.
    • 비슷한 음원을 출시하기 전에 경쟁사 본사 칸의 팬과 중독자를 합친 수가 해당 칸 인구의 절반 이상이 되면 경쟁사가 마비됩니다. 마비된 경쟁사 칸은 더 이상 경쟁사 기능을 하지 못하며 핫플 칸과 같은 취급이 됩니다. 다만 마비된 뒤에도 액티브 스킬로는 해당 칸에 팬을 만들 수 없습니다.
  6. 퇴물화: 퇴물화는 000에서 시작해 턴마다 오릅니다. 유행 감지함 상태이거나 비슷한 음원을 출시한 경쟁사가 많을수록, 트렌드가 높을수록, 팬도 중독자도 아닌 사람이 많을수록 빨리 오릅니다. 퇴물화가 3,0003{,}0003,000 이상이 되면 '퇴물됨' 엔딩으로 게임이 종료됩니다. 모든 경쟁사가 마비되면 압도적인 밈 상태가 되어 퇴물화가 오르지 않습니다. 비슷한 음원을 출시한 경쟁사는 마비되지 않습니다. 한 곳이라도 출시하면 압도적인 밈 상태에 도달할 수 없습니다.
  7. 좋아요: 처음에 202020을 가지고 시작합니다. 짝수 번째 턴이 끝날 때마다 111을 받습니다. 핫플마다 처음 팬이 생기면 121212, 경쟁사를 마비시키면 202020, 중독자가 세계 인구의 1%1\%1%만큼 늘 때마다 888을 받습니다. 첫 무대가 핫플이면 그 핫플에서는 121212를 받지 않습니다.

트렌드는 처음에 000이고, 스킬을 살 때 스킬 종류에 따라 바이럴 스킬은 +4+4+4, 진출 스킬은 +1+1+1, 잠행 스킬은 −4-4−4, 중독 스킬은 +3+3+3만큼 바뀝니다. 000 밑으로 내려가거나 404040 위로 올라가지는 않습니다. 트렌드가 높을수록 경쟁사가 유행을 일찍 감지하고 퇴물화가 빨리 오릅니다.

각 값의 처음 값은 다음과 같으며, 오른쪽 열의 스킬로 바꿀 수 있습니다. 효과 뉴스가 적용되는 턴에는 몇몇 값이 바뀝니다(효과 뉴스 항목 참고).

값 처음 값 바꾸는 스킬
증식 비율 턴마다 32%32\%32% 후렴 반복
핫플 증식 비율 100%100\%100% 후렴 반복
오지 증식 비율·시골 증식 비율 50%50\%50% 현지화
번짐 기준 칸 인구의 30%30\%30% 알고리즘 추천
첫 팬 비율 칸 인구의 10%10\%10% 알고리즘 추천
중독성 0%0\%0% 중독성
감시 범위 경쟁사 본사에서 555칸 이내 조용한 입소문
유행 감지 기준 감시 범위 이내의 팬 505050명 이상 조용한 입소문
유행 따라하기 기준 세계 인구의 20%20\%20% 압도적 홍보
비슷한 음원 출시까지 유행을 감지하고 888턴 뒤 출시 압도적 홍보
내성 칸 회복 비율 내성 칸 팬의 25%25\%25%가 턴마다 내성자가 됨 내성 파훼
퇴물화 000에서 시작해 턴마다 (출시한 경쟁사 수 ×20\times 20×20 + 유행을 감지한 경쟁사 수 ×5\times 5×5 + 유행 따라하기 중이면 101010 + 트렌드) ×\times× (팬도 중독자도 아닌 사람 비율)만큼 오름 내성 파훼·방해 전파
  • 유행 감지 기준은 트렌드 +1+1+1마다 121212명씩 낮아지며, 111명보다 낮아지지 않습니다.
  • 유행 따라하기 기준은 트렌드 +10+10+10마다 1%1\%1%씩 낮아지며, 1%1\%1%보다 낮아지지 않습니다.
  • 비슷한 음원 출시까지의 턴 수는 경쟁사가 유행을 감지한 순간에 정해집니다.

각 과정의 정확한 계산식은 예제 코드의 「아스타의 전파송 SDK」 부분에 정리되어 있습니다. 예제 코드는 채점기와 같은 계산으로 게임을 진행합니다. 스킬을 사기 전에 이 코드로 결과를 미리 계산해 볼 수 있습니다.

3. 스킬

스킬은 바이럴·진출·잠행·중독 네 종류로 각 종류마다 네 개씩, 모두 161616개이며 처음부터 모두 살 수 있습니다. 종류마다 앞의 둘은 패시브 스킬로, 살 때마다 단계가 하나 올라 그 턴부터 효과가 이어집니다. 뒤의 둘은 액티브 스킬로, 사는 즉시 효과가 일어나며 여러 번 살 수 있습니다. 액티브 스킬 중 밈 투척·지역 커버곡·해외 역수입은 팬이 없는 칸에 바로 팬을 만들며, 이것을 전파라고 합니다.

스킬을 사면 가격만큼 좋아요가 줄어듭니다. 패시브 스킬의 가격은 10+50×(현재 단계)10 + 50 \times (\text{현재 단계})10+50×(현재 단계)이고, 중독성만 5+25×(현재 단계)5 + 25 \times (\text{현재 단계})5+25×(현재 단계)입니다. 액티브 스킬의 처음 가격은 챌린지 열풍과 떼창이 121212, 나머지가 242424이며, 같은 스킬을 살 때마다 이 값이 두 배가 됩니다. 모든 스킬은 여기에 (같은 종류 스킬에서 이미 산 횟수×3)(\text{같은 종류 스킬에서 이미 산 횟수} \times 3)(같은 종류 스킬에서 이미 산 횟수×3)만큼 가격이 추가적으로 오릅니다. 예를 들어 바이럴 스킬을 이미 두 번 샀다면, 000단계인 알고리즘 추천의 가격은 161616이고 아직 사지 않은 밈 투척의 가격은 303030입니다. 이어서 밈 투척을 사면 그다음 가격은 24×2+3×3=5724 \times 2 + 3 \times 3 = 5724×2+3×3=57입니다.

그림 번호 종류 구분 스킬 효과 단계별 값
후렴 반복 111 바이럴 패시브 후렴 반복 팬이 더 빨리 불어나고, 핫플에서는 더욱 빨리 불어납니다. 증식 비율 32·40·48·56·64%, 핫플 증식 비율 100·125·150·200·250%
알고리즘 추천 222 바이럴 패시브 알고리즘 추천 전파송이 더 일찍 번지고, 새로 번진 칸이 더 많은 팬으로 시작합니다. 번짐 기준 30·25·20·15·10%, 첫 팬 비율 10·15·20·25·30%
챌린지 열풍 333 바이럴 액티브 챌린지 열풍 202020턴 동안 모든 칸의 증식 비율이 두 배가 됩니다. —
밈 투척 444 바이럴 액티브 밈 투척 팬이 있는 가장 가까운 칸까지 거리가 222 또는 333인 사람 칸 중 인구가 많은 666곳에 전파합니다. 또 팬이 가장 많은 핫플에서 가장 가까운 핫플 111곳에 전파합니다. —
현지화 555 진출 패시브 현지화 오지와 시골에서도 빨리 불어납니다. 오지·시골 증식 비율 50·75·100·125%
해저 케이블 666 진출 패시브 해저 케이블 전파송이 곧게 이어진 바다나 산 칸을 지나, 그 너머의 사람 칸으로 번집니다. 바다와 산이 섞인 줄은 지날 수 없습니다. 지날 수 있는 바다·산 칸 수 0·1·2·3
지역 커버곡 777 진출 액티브 지역 커버곡 팬이 있는 칸에서 오지 칸으로만 이동할 때 333칸 이내에 있는 오지 칸 모두에 전파합니다. 시골 칸으로만 이동할 때 444칸 이내에 있는 시골 칸 모두에도 전파합니다. —
해외 역수입 888 진출 액티브 해외 역수입 팬이 있는 칸에서 바다 칸만 지나 이동할 수 있는 사람 칸 222곳에 전파합니다. 산 칸만 지나 이동할 수 있는 사람 칸 333곳에도 전파합니다. 거리 제한은 없습니다. 팬·중독자·내성자가 한 명도 없는 땅덩이의 칸을 먼저 고릅니다. 그다음 바다 쪽은 지나는 바다 칸 수가, 산 쪽은 지나는 산 칸 수가 적은 칸을 고릅니다. —
조용한 입소문 999 잠행 패시브 조용한 입소문 경쟁사가 본사에서 더 가까운 칸만 보고, 팬이 더 많아야 유행을 감지합니다. 감시 범위 5·4·4·3·2칸, 유행 감지 기준 50·100·200·400·800명
압도적 홍보 101010 잠행 패시브 압도적 홍보 유행 따라하기가 늦게 시작되고, 유행을 감지한 뒤 비슷한 음원 출시까지 더 오래 걸립니다. 이미 유행을 감지한 경쟁사의 남은 턴은 바뀌지 않습니다. 유행 따라하기 기준 20·30·40·50·60%, 출시까지 8·10·12·14·16턴
경쟁사 IP밴 111111 잠행 액티브 경쟁사 IP밴 202020턴 동안 평상시 경쟁사가 감시 범위로는 유행을 감지하지 않고, 트렌드가 101010 더 내려갑니다. 유행 따라하기로 감지하는 것은 막지 않습니다. —
해명 방송 121212 잠행 액티브 해명 방송 유행을 감지한 경쟁사 중 출시까지 남은 턴이 가장 적은 경쟁사 하나를 평상시로 되돌리고, 나머지 유행을 감지한 경쟁사의 출시를 666턴 늦춥니다. 되돌린 경쟁사는 202020턴 동안 유행 따라하기가 시작되었어도 유행을 다시 감지하지 않습니다. —
중독성 131313 중독 패시브 중독성 팬이 턴마다 중독자가 됩니다. 중독성 0·1·2·3·5%
내성 파훼 141414 중독 패시브 내성 파훼 퇴물화가 느리게 오르고, 내성 칸의 팬이 덜 빠져나갑니다. 퇴물화 속도 100·85·75·65·55%, 내성 칸 회복 비율 25·20·15·10·5%
떼창 151515 중독 액티브 떼창 202020턴 동안 중독성이 세 배가 됩니다. —
방해 전파 161616 중독 액티브 방해 전파 퇴물화가 450450450 내려가며, 000 밑으로는 내려가지 않습니다. 404040턴 동안 내성 칸이 넓어지지도, 팬을 내성자로 만들지도 않습니다. —

스킬이 칸이나 경쟁사를 고를 때 순위가 같으면 번호가 작은 쪽을 고릅니다. 칸 번호는 위 행부터, 같은 행에서는 왼쪽부터 매깁니다.

패시브 스킬의 단계별 값은 처음 값부터 마지막 단계의 값까지이며, 마지막 단계인 스킬은 더 살 수 없습니다.

몇 턴 동안 이어지는 액티브 스킬의 효과는 산 턴부터 그 턴 수만큼 적용됩니다. 예를 들어 ttt번째 턴에 챌린지 열풍을 사면 ttt번째 턴부터 t+19t+19t+19번째 턴까지 증식 비율이 두 배입니다. 챌린지 열풍·경쟁사 IP밴·떼창·방해 전파는 효과가 이어지는 중에 다시 사면 남은 턴에 그만큼 더해집니다.

전파할 칸은 스킬을 사기 직전의 상태를 보고, 다음 조건을 모두 만족하는 칸 중에서만 고릅니다.

  • 사람 칸입니다.
  • 팬이 없습니다.
  • 일반인이 있습니다.
  • 내성 칸이 아닙니다.
  • 경쟁사 본사 칸이 아닙니다.

예를 들어 밈 투척은 팬이 가장 많은 핫플에서 가장 가까운 핫플에 이미 팬이 있으면, 조건을 만족하는 핫플 중 가장 가까운 곳에 전파합니다. 해외 역수입도 바다 칸을 가장 적게 지나는 사람 칸이 내성 칸이면, 그 칸을 빼고 남은 칸 중에서 222곳을 고릅니다. 한 스킬이 같은 칸을 두 번 고르면 그 칸에는 한 번만 전파합니다.

전파된 칸은 칸 인구의 첫 팬 비율만큼의 팬으로 시작하고, 그 턴의 증식부터 다른 칸과 똑같이 불어나고 번집니다.

효과가 일어나지 않을 때에도 액티브 스킬을 살 수 있습니다. 예를 들어 전파할 칸이 하나도 없을 때 밈 투척을 사거나, 유행을 감지한 경쟁사가 없을 때 해명 방송을 사도 됩니다. 이때도 좋아요는 가격만큼 줄고, 트렌드와 다음에 살 때의 가격도 효과가 일어날 때와 똑같이 바뀝니다.

4. 효과 뉴스

게임 중간에 효과 뉴스가 나와 규칙의 값을 바꿉니다. 어느 턴에 어떤 효과 뉴스가 나오는지는 편성표에 정해져 있으며, 편성표는 게임을 시작할 때 입력의 NEWS 줄로 모두 주어집니다. 전파송 쪽 효과 뉴스는 전파송에 유리하고, 경쟁사 쪽은 불리합니다.

번호 쪽 효과 길이
111 전파송 증식 비율이 32\frac{3}{2}23​배가 됩니다. 202020턴
222 전파송 첫 팬 비율이 두 배가 됩니다. 202020턴
333 전파송 중독성이 두 배가 됩니다. 101010턴
444 전파송 퇴물화가 오르지 않습니다. 101010턴
555 전파송 평상시 경쟁사가 감시 범위로는 유행을 감지하지 않습니다. 경쟁사 IP밴과 달리 트렌드는 바뀌지 않습니다. 101010턴
666 전파송 좋아요가 151515 늘어납니다. 즉시
777 전파송 트렌드가 101010 내려갑니다. 즉시
888 경쟁사 증식 비율이 절반이 됩니다. 202020턴
999 경쟁사 전파송이 인접한 칸으로도, 바다·산 너머로도 번지지 않습니다. 101010턴
101010 경쟁사 퇴물화가 오르는 양이 32\frac{3}{2}23​배가 됩니다. 202020턴
111111 경쟁사 내성 칸이 짝수 번째 턴에도 넓어집니다. 202020턴
121212 경쟁사 좋아요가 101010 줄어듭니다. 즉시
131313 경쟁사 트렌드가 101010 올라갑니다. 즉시
  • 편성표의 한 줄 t kind h는 ttt번째 턴에 kind번 효과 뉴스가 나온다는 뜻입니다. h는 화면에 보일 헤드라인 번호이며, 게임에 영향을 주지 않습니다.
  • ttt번째 턴의 효과 뉴스는 t−1t-1t−1번째 턴이 끝날 때 적용되고, ttt번째 턴의 TURN 입력에는 그 효과가 이미 적용된 값이 주어집니다. 그 전에 게임이 종료되면 적용되지 않습니다.
  • 길이가 '즉시'인 효과는 적용되는 순간 값을 바꿉니다. 좋아요와 트렌드는 000 밑으로 내려가지 않고, 트렌드는 404040 위로 올라가지 않습니다.
  • 길이가 있는 효과는 ttt번째 턴부터 그 길이만큼 이어지며, 같은 효과가 이어지는 중에 다시 나오면 남은 턴에 길이가 더해집니다.
  • 효과 뉴스는 스킬의 효과와 함께 적용됩니다. 증식 비율은 챌린지 열풍의 두 배, 효과 111의 32\frac{3}{2}23​배, 효과 888의 절반을 차례로 곱해 소수점을 버린 뒤, 핫플·오지·시골 증식 비율을 곱합니다.
  • 중독성은 떼창의 세 배에 효과 333의 두 배를 곱하며, 100%100\%100%를 넘지 않습니다.
  • 효과 222는 번짐과 전파로 팬이 새로 생기는 칸 모두에 적용되며, 100%100\%100%를 넘지 않습니다.
  • 효과 999가 적용되어도 밈 투척·지역 커버곡·해외 역수입으로는 전파할 수 있습니다.
  • 방해 전파가 이어지는 동안에는 효과 111111이 적용되어도 내성 칸이 넓어지지 않습니다.
  • 같은 턴에 효과 뉴스가 둘 나오지 않습니다. 첫 번째는 303030번째에서 505050번째 턴 사이에 나오고, 그 뒤로 252525턴에서 404040턴 간격으로 하나씩 490490490번째 턴까지 나옵니다. 전파송 쪽과 경쟁사 쪽은 전파송 쪽부터 번갈아 나옵니다.
  • 화면에는 효과 뉴스 말고도 이정표 뉴스와 한 줄 뉴스가 나옵니다. 이 뉴스들은 입력에 없고, 게임에 영향을 주지 않습니다.

5. 게임 종료와 점수

게임은 턴이 끝날 때 다음 조건 중 하나가 만족되면 종료됩니다. 여러 조건을 함께 만족하면 위에 적힌 조건으로 판정합니다.

  • 중독되지 않은 사람이 000명이 되면 '전원 중독' 엔딩입니다.
  • 퇴물화가 3,0003{,}0003,000 이상이 되면 '퇴물됨' 엔딩입니다.
  • 팬이 000명이 되면 '유행 끝' 엔딩입니다.
  • 500500500턴을 진행하면 '계속 유행 중…' 엔딩입니다.

최종 점수는 ⌊900,000×중독자세계 인구⌋\left\lfloor 900{,}000 \times \dfrac{\text{중독자}}{\text{세계 인구}} \right\rfloor⌊900,000×세계 인구중독자​⌋입니다. '전원 중독' 엔딩으로 게임이 종료되면 남은 턴마다 200200200점을 더합니다.

팬·중독자 막대

팬·중독자 막대는 세계 인구를 나타내며, 왼쪽부터 중독자, 팬, 팬도 중독자도 아닌 사람의 비율입니다.

6. 챌린지

챌린지는 넷이며, 제출할 때 고르는 상대 아스타 넷은 위에서부터 챌린지 111, 222, 333, 444입니다. 고른 챌린지의 규칙으로 채점하며, 챌린지마다 위의 규칙과 다른 점은 다음과 같습니다.

챌린지 다른 규칙
111 퇴물화가 오르지 않습니다. 경쟁사는 유행을 감지해도 출시까지 남은 턴이 줄지 않아 비슷한 음원을 출시하지 않습니다.
222 위의 규칙 그대로입니다.
333 스킬은 한 게임에 모두 121212번까지 살 수 있습니다. 패시브 스킬의 단계를 하나 올리는 것도, 액티브 스킬을 한 번 사는 것도 한 번입니다. 121212번을 산 뒤에 스킬을 사면 살 수 없는 스킬을 출력한 것과 같이 게임이 종료됩니다.
444 중독자가 한 명이라도 있는 칸에서는 전파송이 인접한 칸으로도, 바다·산 너머로도 번지지 않습니다. 액티브 스킬의 전파는 그대로 일어납니다.

챌린지 번호는 게임을 시작할 때 START의 넷째 값으로 주어집니다.

전파송을 퍼뜨릴 때와 사람들을 중독시킬 때를 골라, 퇴물이 되기 전에 모두를 중독시키는 AI를 설계해주세요!

Input

게임을 시작할 때 채점기는 START 명령과 함께 지도와 효과 뉴스 편성표를 다음의 123+k123 + k123+k줄로 입력합니다.

START H W T K
row_1
...
row_H
pop_1
...
pop_H
r c
NEWS k
t_1 kind_1 h_1
...
t_k kind_k h_k
  • H, W, T는 각각 606060, 969696, 500500500입니다.
  • K는 이번 게임의 챌린지 번호이며 111 이상 444 이하입니다. 챌린지마다 다른 규칙은 지문의 챌린지 항목에 있습니다.
  • row_i는 길이가 969696인 문자열이며, jjj번째 문자는 (i,j)(i,j)(i,j) 칸의 글자(., :, %, ~, ^, C, L)입니다.
  • pop_i에는 정수 969696개가 공백으로 구분되어 주어지며, jjj번째 정수는 (i,j)(i,j)(i,j) 칸의 인구입니다. 바다와 산의 인구는 000입니다.
  • r c는 첫 무대 칸의 좌표입니다.
  • 짝수 행은 반 칸 오른쪽으로 밀려 있습니다. (r,c)(r,c)(r,c)에 인접한 칸은 같은 행의 (r,c−1)(r,c-1)(r,c−1), (r,c+1)(r,c+1)(r,c+1)과 위아래 행의 두 칸입니다. 위아래 행의 두 칸은 rrr이 홀수면 c−1c-1c−1열과 ccc열, 짝수면 ccc열과 c+1c+1c+1열입니다.
  • 경쟁사 번호는 지도에서 L 칸이 나오는 차례대로, 위 행부터, 같은 행에서는 왼쪽부터 111번으로 시작합니다.
  • NEWS k의 kkk는 편성표의 효과 뉴스 수이며 121212 이상 191919 이하입니다. 뒤의 kkk줄은 턴이 작은 것부터 t kind h입니다.
    • t는 효과 뉴스가 나오는 턴의 번호입니다. 같은 턴에 효과 뉴스가 둘 나오지 않습니다.
    • kind는 효과 번호이며 111 이상 131313 이하입니다. 111부터 777까지는 전파송 쪽, 888부터 131313까지는 경쟁사 쪽 효과 뉴스입니다.
    • h는 헤드라인 번호이며 111 이상 444 이하입니다. 화면에만 쓰이고, 게임에 영향을 주지 않습니다.

지도와 편성표 입력을 받은 플레이어가 READY를 출력하면 명령 교환을 시작합니다.

채점기는 다음의 한 줄 단위로 플레이어와 통신합니다.

명령어 채점기→플레이어 (입력) 플레이어→채점기 (출력) 시간 제한 (ms) 설명
START START H W T K와 지도·편성표 READY 남은 총 시간 게임 시작을 알리고 지도와 편성표를 입력합니다. 응답에 사용한 시간은 플레이어의 총 시간에서 차감됩니다.
TURN TURN remaining_ms t dna cure notice infected dead labs WAIT 또는 BUY k remaining_ms 남은 시간과 이번 턴의 상태를 알립니다. 스킬 kkk번을 사려면 BUY k, 사지 않으려면 WAIT를 출력합니다.
  • remaining_ms, t, dna, cure, notice, infected, dead, k는 정수입니다.
  • remaining_ms는 플레이어에게 남은 시간을 밀리초 단위로 나타냅니다.
  • t는 이번 턴의 번호이며 111 이상 500500500 이하입니다.
  • dna는 가진 좋아요, cure는 퇴물화, notice는 트렌드, infected와 dead는 각각 전체 팬 수와 중독자 수입니다. cure는 000 이상 3,0003{,}0003,000 이하입니다.
  • 이 값들은 모두 이번 턴에 스킬을 사기 전의 값이며, 이번 턴에 나오는 효과 뉴스가 이미 적용된 값입니다.
  • labs는 길이가 999인 문자열이며, iii번째 문자는 iii번 경쟁사의 상태입니다. 0은 평상시, 1은 유행 감지함, 2는 비슷한 음원 출시, 3은 마비를 의미합니다.
  • k는 살 스킬의 번호이며 111 이상 161616 이하입니다. 스킬의 가격이 가진 좋아요 이하여야 하고, 패시브 스킬이라면 마지막 단계가 아니어야 합니다. 챌린지 333에서는 이미 121212번 샀다면 어느 스킬도 살 수 없습니다.
  • 입력의 수는 모두 32비트 정수 범위에 들어갑니다. 점수처럼 큰 수끼리 곱하는 계산에는 64비트 정수가 필요할 수 있습니다.
  • 플레이어는 START 응답과 모든 TURN 응답을 합해 총 1,000ms1{,}000\text{ms}1,000ms를 사용할 수 있습니다.
  • 모든 출력 후에는 개행문자를 출력한 뒤 버퍼를 flush해야 합니다.
  • 디버그 메시지는 표준 오류에만 출력해야 하며, 표준 출력에는 프로토콜 응답 외의 문자열을 출력하면 안 됩니다.
  • 남은 시간 안에 응답하지 못하면 게임이 종료되며, 그때까지의 중독자 수로 계산한 점수를 최종 점수로 사용합니다.
  • 출력 형식에 맞지 않는 문자열이나 살 수 없는 스킬을 출력한 경우에도 게임이 종료되며, 해당 행동 직전까지의 중독자 수로 계산한 점수를 최종 점수로 사용합니다.
  • 게임이 종료되면 채점기는 추가 명령을 보내지 않고 플레이어의 프로그램을 종료합니다.

Example

다음은 챌린지 222, 지도 111번에서 플레이어와 채점기가 통신하는 예시입니다. 시간 값은 설명을 위한 예시입니다.

채점기→플레이어 입력 플레이어→채점기 출력
START 60 96 500 2
~~~~~~~~~~~~~~:::::::::~~~~~~~~~~~~~~~~~… (지도 606060줄)
0 0 0 0 0 0 0 0 0 0 0 0 … (인구 606060줄)
23 40
NEWS 15
50 5 4
76 9 2
⋮\vdots⋮ (편성표 151515줄)
481 6 1 READY
TURN 1000 1 20 0 0 10 0 000000000 BUY 1
TURN 998 2 10 3 4 15 0 000000000 BUY 9
TURN 996 3 1 3 0 23 0 000000000 WAIT
TURN 994 4 1 3 0 35 0 000000000 WAIT
⋮\vdots⋮ ⋮\vdots⋮

편성표의 첫 효과 뉴스는 505050번째 턴의 효과 555입니다. 이 효과가 적용되는 동안 평상시 경쟁사는 감시 범위로는 유행을 감지하지 않습니다. 마지막 효과 뉴스는 481481481번째 턴의 효과 666이며, 좋아요가 151515 늘어납니다.

첫 두 턴에는 다음 일이 일어납니다.

  • 첫 턴에 가격이 101010인 후렴 반복을 사서 좋아요가 20−10=1020 - 10 = 1020−10=10이 됩니다.
  • 첫 턴은 홀수 번째 턴이라 좋아요 111을 받지 않습니다. 첫 무대 (23,40)(23,40)(23,40)은 핫플이지만, 핫플의 121212도 받지 않습니다.
  • 후렴 반복은 바이럴 스킬이라 트렌드가 444 오릅니다. 유행을 감지한 경쟁사가 없어도 트렌드만큼 퇴물화가 오릅니다. 444에 팬도 중독자도 아닌 사람의 비율을 곱해 내림하면 333입니다.
  • 둘째 턴에 조용한 입소문을 삽니다. 잠행 스킬을 처음 사는 것이라 가격이 101010이고, 트렌드가 444 내려갑니다.
  • 둘째 턴은 짝수 번째 턴이라 좋아요 111을 받습니다. 좋아요는 10−10+1=110 - 10 + 1 = 110−10+1=1이 됩니다. 트렌드가 000이 되어 이 턴에는 퇴물화가 오르지 않습니다.

Sample code

  • CPP20 : main.cpp
  • PYTHON3, PYPY3 : main.py

Author

  • L
    Bronze IIIlixx
  • wapas
    Silver Iwapas
PlaySubmit code
© 2026 hanpan
Privacy Policy

Tier icons are copyrighted by solved.ac. This service is not affiliated with solved.ac.