社区讨论

站外题求助qwq

灌水区参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@m10holru
此快照首次捕获于
2024/09/13 17:01
去年
此快照最后确认于
2024/09/13 20:29
去年
查看原帖
CPP
【题目描述】

小辉得到了一个包含 n 个数的数列,他要从中选出
两个不同位置的数形成一个数对,要求较左边的数对
k 取余的结果小于等于较右边的数对 k 取余的结
果,

问小辉有多少种选法。

【输入格式】

一行,两个正整数 n 和 k

接着 n 个正整数,为数列的值

【输出格式】

一行,一个正整数,表示答案

【输入样例】

4 6

3 4 5 6

【输出样例】

3

【样例解释】

3,4,5,66 取模的结果分别为 3,4,5,0,能构成的数对有(3,4)、(3,5)、

(4,5),共 3 个。

【数据范围】

50%的数据,2<=n<=10000,1<=k<=10,数列中每个数的值不超过 1000

100%的数据,2<=n<=1000000,1<=k<=50,数列中每个数的值不超过 1000

此代码80分,求助

#include<bits/stdc++.h>

using namespace std;

const int N=1000005;

int n,k,a[N],sum;

int main(){

    cin>>n>>k;
    
    for(int i=1;i<=n;i++){
    
    	cin>>a[i];
        
    	a[i]=a[i]%k;
        
    }
    for(int i=1;i<n;i++){
    	for(int j=i+1;j<=n;j++){
    		if(a[i]<=a[j]) sum++;
    	}
    }
    cout<<sum;
    return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...