C. Number of Pairs
最佳答案 问答题库298位专家为你答疑解惑
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an array a� of n� integers. Find the number of pairs (i,j)(�,�) (1≤i<j≤n1≤�<�≤�) where the sum of ai+aj��+�� is greater than or equal to l� and less than or equal to r� (that is, l≤ai+aj≤r�≤��+��≤�).
For example, if n=3�=3, a=[5,1,2]�=[5,1,2], l=4�=4 and r=7�=7, then two pairs are suitable:
- i=1�=1 and j=2�=2 (4≤5+1≤74≤5+1≤7);
- i=1�=1 and j=3�=3 (4≤5+2≤74≤5+2≤7).
Input
The first line contains an integer t� (1≤t≤1041≤�≤104). Then t� test cases follow.
The first line of each test case contains three integers n,l,r�,�,� (1≤n≤2⋅1051≤�≤2⋅105, 1≤l≤r≤1091≤�≤�≤109) — the length of the array and the limits on the sum in the pair.
The second line contains n� integers a1,a2,…,an�1,�2,…,�� (1≤ai≤1091≤��≤109).
It is guaranteed that the sum of n� overall test cases does not exceed 2⋅1052⋅105.
Output
For each test case, output a single integer — the number of index pairs (i,j)(�,�) (i<j�<�), such that l≤ai+aj≤r�≤��+��≤�.
Example
input
Copy
4 3 4 7 5 1 2 5 5 8 5 1 2 4 3 4 100 1000 1 1 1 1 5 9 13 2 5 5 1 1
output
Copy
2 7 0 1
解题说明:此题是一道数学题,为了找到这样数字组合,可以先对数列进行排序,排序后,用lower_bound和upper_bound找到边界,然后中间的就都是满足条件的数字对。
lower_bound返回第一个大于等于val的元素的迭代器
upper_bound返回第一个大于val的元素的迭代器
#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int t;cin >> t;while (t--){long long int n, l, r, k = 0;cin >> n >> l >> r;int a[200001];for (int i = 0; i < n; i++){cin >> a[i];}sort(a, a + n);for (int i = 0; i < n; i++){int j = lower_bound(a + i + 1, a + n, l - a[i]) - a;int p = upper_bound(a + i + 1, a + n, r - a[i]) - a;k = k + p - j;}cout << k << endl;}return 0;
}
99%的人还看了
相似问题
- FISCO BCOS 3.0【01】搭建第一个区块链网络
- 3-运行第一个docker image-hello world
- Vue入门教学——编写第一个页面
- skynet学习笔记01— skynet开发环境搭建(超详细)与第一个skynet程序
- 第二章: 创建第一个Spring Boot 应用
- 【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)
- 搭建第一个区块链网络与一键部署WeBASE步骤
- 【Linux】:Linux项目自动化构建工具——make/Makefile || Linux第一个小程序——进度条(简单版本)
- Leetcode41缺失的第一个正数
- 【LearnOpenGL基础入门——2】搭建第一个OpenGL窗口
猜你感兴趣
版权申明
本文"C. Number of Pairs":http://eshow365.cn/6-37424-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: STL常用库函数复习
- 下一篇: 一题三解(暴力、二分查找算法、单指针):鸡蛋掉落