https://www.acmicpc.net/problem/2428
2428번: 표절
첫째 줄에 제출한 솔루션의 개수 N이 주어진다. 둘째 줄에는 각 솔루션 파일의 크기 size(F1), size(F2), ..., size(FN)이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ size(Fi) ≤ 100,000,000) 솔루션 파일의 크기는 정수이
www.acmicpc.net
#include<iostream>
#include <algorithm>
using namespace std;
int N;
int arr[100001];
int getCount(int left, int right) {
int start = left;
while (left < right) {
int mid = (left + right) / 2;
if (arr[mid] * 0.9 <= arr[start])
left = mid + 1;
else
right = mid;
}
return right - 1;
}
int main() {
cin >> N;
for (int i = 0; i < N; i++)
cin >> arr[i];
sort(arr, arr + N);
long long count = 0;
for (int i = 0; i < N-1; i++) {
int dis = getCount(i, N) - i;
count += dis;
}
cout << count;
}