std::정렬부터 시작하는 디버깅 생활
시간 제한2초메모리 제한512 MB
N = 2와 두 점 (1, 0), (0, 1)을 출력하는 문제로, std::sort 비교 함수의 오류를 드러내는 고정된 반례를 내놓으면 된다.
문제
지구이는 std::sort를 무한히 신뢰한다. 빠른 정렬을 직접 구현하려면 적어도 줄이 넘지만, std::sort는 한 줄이면 끝나기 때문이다. 구조체 배열에 쓰려면 부등호 연산을 정의하는 식의 추가 구현이 필요하지만, 직접 구현하는 일에 비하면 그 정도는 단점도 아니었다.
그래서 지구이는 매일 S.M.T를 외치며 코드를 짰다. 어느 날 이유를 알 수 없는 "틀렸습니다"를 받았다. 문제는 아주 간단하다.
평면의 , 부분에 점 개가 있다. 이 점들을 다음 조건을 만족하도록 정렬하라. 모든 에 대해 번째 점 와 번째 점 는 를 만족한다.
지구이는 두 점 , 에 대해 이면 이 보다 앞이라고 보고 std::sort로 정렬했지만, 틀렸다. 코드에는 std::sort밖에 없는데도 계속 틀리자 데이터를 넣어 봤지만 반례를 찾지 못했다.
지구이를 도와 반례 데이터를 출력하라. 이 문제에서 요구하는 출력은 유일하게 정해져 있다. 점의 개수 은 이고, 두 점은 순서대로 과 이다.
입력
입력이 없다.
출력
첫 줄에 점의 개수 을 출력한다. 은 이상 이하여야 한다. 이 문제에서 은 이다.
다음 개의 줄에 좌표와 좌표를 출력한다. 각 좌표는 이상 이하여야 한다. 두 점은 순서대로 , 이다.
힌트
채점 서버는 libstdc++로 지구이의 코드를 컴파일했다.