AB는 빨리 잘 풀었는데 C를 한참 고민하고 못 풀었다. 이제 정확도, 속도는 어느 정도 돌아온 것 같다. 이제 업솔빙으로 못푸는 문제의 컷을 높이는게 필요할 듯. 문제를 다양하게 풀어보자.. A. Unusual Competitions (는 +1, )는 -1로 두고 값이 음수로 내려가는 시점부터 0이 되는 순간까지 구간의 길이를 모두 더해주면 된다. 이러한 구간은 전부 조정이 필요한데 마지막에 합이 0이 됐으면 잘 조정해서 음수가 아예 나오지 않게 만들어줄 수 있기 때문이다. B. Present 가장 작은 수에 해당하는 비트부터 순서대로 0,1,2,3..., b로 번호를 붙여보자. 덧셈을 했을 때 어떤 x번 비트의 값에 영향을 줄 수 있는 건 0...x번 비트까지다(즉, x+1번 비트 이후는 필요가 없다..
ABC는 빠르고 정확하게 풀었는데 D를 90분이나 시간이 있었음에도 못 풀었다. 심지어 풀이는 거의 10분만에 나왔는데.. 이런 류의 문제를 항상 잘 못 푸는 것 같다. 풀이를 좀 더 깔끔하게 생각을 하든, 구현을 좀 더 잘 하든 둘 중에 하나는 해야하는데. 오늘 업솔빙까지 끝내고 싶었지만 너무 피곤해서 D 업솔빙은 내일로 미룬다. AC 받고 나서 풀이 업뎃해야지 이 사이트 퍼포먼스를 좀 짜게 주는 것 같다. 본 대회에서 나랑 비슷한 점수 기록한 사람이 오렌지에서 레드까지 레이팅이 올랐던데? 그러면 이것도 퍼포먼스 수치가 레드 언저리여야하는 것 아닌가... 흠... 일부러 가상 참가는 약간 과소평가하게 만들어놓은건가 싶기도 하고. A. Journey Planning 가끔 보이는 종류의 문제. 각각을 하나..
인터랙티브 문제를 처음 접하면, 틀릴 때 도대체 왜 틀렸는지 모르겠는데 디버깅하는 방법도 알 수가 없어서 굉장히 헤매게 된다. 모든 인터랙티브 문제에서 사용할 수 있는 방법은 아니지만 인터랙터의 구현이 어렵지 않은 경우 쉽게 쓸 수 있는 코드 구조가 있어 간단히 정리해본다. 대부분의 인터랙티브 문제가 인터랙터 구현이 심플하기 때문에 이 방법만으로도 어지간해서는 로컬 디버깅을 어렵지 않게 할 수 있다. 인터랙터 흉내내기 인터랙티브 문제의 로컬 디버깅에서의 어려움은 일단 확실한 해결 방법이 하나 있다. 바로 문제에서 제시된 인터랙터(쿼리에 대한 응답을 하는 프로그램)를 그대로 로컬에 구현한 다음 이걸 이용해서 디버깅을 하는 것이다. 하지만 인터랙터를 별개의 프로그램으로 만든 후 이 인터랙터를 통해서 채점하는..