0分求助【站外题】
  • 板块学术版
  • 楼主Lina_
  • 当前回复15
  • 已保存回复15
  • 发布时间2022/7/9 17:15
  • 上次更新2023/10/27 21:20:46
查看原帖
0分求助【站外题】
639635
Lina_楼主2022/7/9 17:15

数对(pair)

小明得到了一个包含n个数的数列,他会从中选出两个不同位置的数形成一个数对,要求较左边的数对3取余的结果小于等于较右边的数对3取余的结果,问小明有多少种选法。

输入格式

输入两行,第一行包含一个正整数n,表示数列中数的数量。

第二行包含n个正整数,ai表示数列中的第i个数。

输出格式

输出一行,为一个整数,为所求的答案。

输入/输出例子1

输入:

4

1 3 4 2

输出:

5

样例解释

【数据范围】

对于60%的数据,1≤n≤10^3,1≤ai≤10^6。

对于100%的数据, 1≤n≤10^5,1≤ai≤10^9。

#include<bits/stdc++.h>
#define ll long long
ll a[4];
using namespace std;
int main(){
    ll n,s=0;
    cin>>n;
    for(ll i=1;i<=n;i++){
        int x;
        cin>>x;
        if(x%3==2)s+=a[1]+a[2]+a[0];
        if(x%3==1)s+=a[1]+a[0];
		a[x%3]++;
    }
    cout<<s<<endl;;
    return 0;
}
2022/7/9 17:15
加载中...