일단 이 문제는 세그먼트 트리의 일종인 머지소트 트리를 사용해서 효율적으로 해결할 수 있는 문제입니다.
그리고 sync_with_stdio에 아무런 인자를 주지 않으면 기본 인자가 true가 되기 때문에 안 쓰는 것과 아무런 차이가 없습니다. false를 인자로 줘야 합니다.
그리고 endl을 쓰면 cin.tie(0)도 무용지물이 됩니다. cin이 호출될 때마다 cout이 flush되는 것을 막으려고 cin.tie(0)을 쓴 건데, endl을 쓰면 cout가 강제로 flush되기 때문입니다. '\n'을 대신 사용하세요.
wnsgur1714 4년 전 1
세그먼트 트리를 만들고 이를 내림차순으로 정렬해서 순차탐색하여 찾는 값을 넘는 경우에 남은 숫자들의 개수를 더했는데요....
제 코드가 시간초과가 걸립니다.
제가 생각하기에 세그먼트 트리를 만들고 내림차순으로 정렬하는 것 때문에 걸리는 게 아니라 일부 테스트 케이스에서 순차탐색 때문에 시간이 초과되는 것 같습니다.
탐색에 걸리는 시간을 더 줄일 수 있는 방법이 있을까요?