pairs
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
Problem Description
John has n points on the X axis, and their coordinates are (x[i],0),(i=0,1,2,…,n−1) . He wants to know how many pairs <a,b> that |x[b]−x[a]|≤k.(a<b)
Input
The first line contains a single integer T (about 5), indicating the number of cases.
Each test case begins with two integers n,k(1≤n≤100000,1≤k≤109) .
Next n lines contain an integer x[i](−109≤x[i]≤109) , means the X coordinates.
Output
For each case, output an integer means how many pairs <a,b> that |x[b]−x[a]|≤k .
Sample Input
2 5 5 -100 0 100 101 102 5 300 -100 0 100 101 102
Sample Output
3 10简单水题!相信也不需要多说,二重循环一下就行.只是注意它每次减的数,是 | x [ b ] − x [ a ] |,是两个数的绝对值.不能减多了也不能减少了!中文在下面......<span style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 14px; line-height: 1.42857143; white-space: pre-wrap;">import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); int t = input.nextInt(); for (int i = 0; i < t; i++) { int n = input.nextInt(); int a[] = new int[n]; int sum = 0, flag = 0; int k = input.nextInt(); for (int j = 0; j < n; j++) { a[j] = input.nextInt(); } for (int j = 0; j < n; j++) { for (int l = j + 1; l < n; l++) { if (a[j] - a[l] < 0) { flag = -(a[j] - a[l]); } else { flag = a[j] - a[l]; } if (flag <= k) { sum++; } } } System.out.println(sum); } } } </span>
pairs
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 483 Accepted Submission(s): 234
问题描述
John 在X轴上拥有 n 个点,他们的坐标分别为 (x[i],0),(i=0,1,2,…,n−1) 。 他想知道有多少对 <a,b> 满足 |x[b]−x[a]|≤k(a<b) 。
输入描述
第一行包含一个正整数 T (大约5),表示有多少组数据。 对于每一组数据,先读入两个数 n,k(1≤n≤100000,1≤k≤109) 。 接下来 n 行,分别输入 x[i](−109≤x[i]≤109) 。
输出描述
对于每组数据,输出一行表示有多少对 <a,b> 满足 |x[b]−x[a]|≤k 。
输入样例
2 5 5 -100 0 100 101 102 5 300 -100 0 100 101 102
输出样例
3 10