pairs
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 349 Accepted Submission(s): 151
Problem Description John has
Input The first line contains a single integer
Each test case begins with two integers
Next
Output For each case, output an integer means how many pairs
Sample Input
2 5 5 -100 0 100 101 102 5 300 -100 0 100 101 102
Sample Output
3 10
Source BestCoder Round #31
写傻逼了,居然还超时了。。
AC代码:
#include#include #include #include #include #define LL long long using namespace std; int a[100005]; int main() { int T; scanf("%d", &T); while(T--) { int n, k; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++) { scanf("%d", &a[i]); } sort(a, a+n); LL ans = 0; for(int i = 0, j = 0; i < n; i++) { while(j + 1 < n && a[j + 1] - a[i] <= k) j++; ans += (j - i); } cout << ans << endl; } return 0; }