Logo
(追記) (追記ここまで)

다른 두 개의 출력이 모두 정답처리가 됩니다

21939번 - 문제 추천 시스템 Version 1

add 명령에서 이미 존재하는 문제 번호가 다른 난이도로 다시 들어올 수 있다는게 이미 존재하는 문제의 난이도가 변경된다는 뜻으로 이해했습니다.

주석처리한 check.erase({prob[num],num}); 부분이 없어도 정답처리가 됩니다.

제가 이해한 문제는

3
100 1
101 1
102 1
5
recommend -1
add 100 2
recommend -1
add 101 2
recommend -1
라는 입력을 넣으면 처음엔 100, add 100 2 이후엔 100번 문제의 난이도가 2로 변경되어 가장 쉬운 문제인 101이 출력되어야 맞다고 생각합니다


하지만 저 주석의 코드가 없어지면

3
100 1
101 1
102 1
4
recommend -1
add 100 2
recommend 1
recommend -1

이라는 입력을 했을 때 add 100 2를 통해 100번의 난이도를 2로 변경했음에도 가장 쉬운 문제도 100이 출력되고 가장 어려운 문제도 100이 출력됩니다

이미 있는 번호로 입력이 들어온다는게 한 문제가 여러 개의 난이도를 가질 수 있다는 것을 의미하는 것은 아닐 거 같은데

제가 잘못 생각하고 있는건가요?

"추천 문제 리스트에 없는 문제 번호 $P$만 입력으로 주어진다." 조건이 있으므로 100번 문제가 이미 리스트에 있는 상태에서 add 100을 하는 것은 올바른 명령이 아닙니다. "이전에 추천 문제 리스트에 있던 문제 번호가 다른 난이도로 다시 들어 올 수 있다."라는 말은 이전에 리스트에 있었으나 solved 명령에 의해 리스트에서 제거된 문제가 나중에 다시 추가될 수 있다는 뜻입니다.

아하 그런뜻이였군요 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /