로봇
면접 대비시간 제한2초메모리 제한512 MB
부호가 있는 이동 거리 수열이 주어질 때, 최대 k개의 부호를 뒤집어 최종 위치의 절댓값을 최대로 만든다.
문제
회사 <<필립 인더스트리즈>>는 화성에 새 로봇 탐사차를 보냈다. 로봇의 목표는 화성 표면을 탐사하는 것이다.
화성을 탐사하기 위해 로봇은 행성 표면을 따라 남쪽과 북쪽으로 직선을 따라 이동한다. 로봇의 프로그램은 개의 명령으로 이루어지며, 각 명령은 정수 로 표현된다. 각 수 는 로봇이 걸어야 하는 걸음 수를 나타낸다. 이면 로봇은 걸음 북쪽으로 이동하고, 이면 걸음 남쪽으로 이동한다. 로봇은 첫 번째부터 시작하여 명령을 차례대로 실행한다.
그런데 화성으로 가는 도중 로봇은 우주 방사선에 노출되어 프로그램이 손상되었을 수 있다. 메모리 검사 절차를 실행한 과학자들은 프로그램에 다음과 같은 형태의 오류가 0개에서 개까지 발생했음을 알아냈다. 즉, 수 가 로 바뀐 것이다. 그럼에도 화성에 착륙한 로봇은 손상되었을 수 있는 자기 프로그램을 실행했다.
이제 로봇을 구출하기 위해 과학자들은 로봇이 프로그램 실행을 시작한 지점에서 얼마나 멀리 떨어질 수 있었는지 알아내려 한다. 그들을 도와 이 사실을 밝혀내자.
입력
첫째 줄에는 두 수 , 가 주어진다 (). 이는 로봇 프로그램에 있는 수의 개수와 최대 오류 개수이다.
둘째 줄에는 개의 수 가 주어진다 (, ). 이는 로봇의 프로그램이다.
출력
로봇이 모든 명령을 실행하고 개 이하의 오류를 일으켰을 때 이동할 수 있었던 최대 거리를 걸음 수로 하여 한 줄에 출력한다.
힌트
첫 번째 예에서 로봇은 예를 들어 프로그램 을 실행하여 결과적으로 5걸음 북쪽으로 이동할 수 있었다.