0
已解决
题目描述 Description
给定 n 个数 ai,以及一个正整数 c ,问有多少对 i j,满足 ai - aj = c
输入描述 Input Description
第 1 行:整数 n 和 c
第 2 至 n+1 行:每行包含一个整数 ai
输出描述 Output Description
输出能满足 ai - aj = c 的数的对数
样例输入 Sample Input
5 3 2 1 4 2 5
样例输出 Sample Output
3
1772:A - B = C
Time Limit Exceeded:80分
汪宇航的测评结果:
测试点
结果
时间
1
Accepted
0ms
偷看一下数据
2
Accepted
0ms
偷看一下数据
3
Accepted
4ms
偷看一下数据
4
Accepted
0ms
偷看一下数据
5
Accepted
0ms
偷看一下数据
6
Accepted
0ms
偷看一下数据
7
Accepted
0ms
偷看一下数据
8
Accepted
0ms
偷看一下数据
9
Time Limit Exceeded
2004ms
偷看一下数据
10
Time Limit Exceeded
1992ms
偷看一下数据
汪宇航的提交(cpp):
#include <iostream>#pragma GCC optimize(3)using namespace std;int n,c,cnt=0,a[1000000];int main(){cin>>n>>c;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i]-a[j]==c&&i!=j){cnt++;}}}cout<<cnt;return 0;}
0
已采纳
0
0
你
先把数组a排个序
这样就可以
把第二重循环j的起始点改为i,
即
for(int j=i;j<=n;j++){
}
然后每次判断改为:
if(a[j]-a[i]==c){
cnt++;
}
if(a[j]-a[i]>c) break;
就可以AC了。
0
