Makes And The Product

https://codeforces.com/problemset/problem/817/B

求三元组(i,j,k)满足 ai*aj*ak是最小的数量

显然我们要排序,我们就确认了最小值是现在的a1*a2*a3

接下来,思考a1,a2,a3可不可以替换

就需要考虑a1,a2,a3之间的关系

1.a1==a2 && a2==a3

找到一直满足a3==ai 的最大索引

数量就是

2.a1==a2 && a2!=a3

只有a3可以替换

找到一直满足a3==ai 的最大索引

数量是

3.a1!=a2 && a2==a3

a2,a3都可以替换

找到一直满足a3==ai 的最大索引

数量是

4.a1!=a2 && a2!=a3

和第2个一样

cpp 复制代码
// Problem: B. Makes And The Product
// Contest: Codeforces - Educational Codeforces Round 23
// URL: https://codeforces.com/problemset/problem/817/B
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include<iostream>
#include<algorithm>
#include<vector>
#define INF (1ll<<60)
using namespace std;
typedef long long ll;
const int N=1e5+9;
int a[N];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
    }
    sort(a+1,a+1+n);
    // a1,a2,a3 能否交换
    ll index=0;
    if(a[1]==a[2] && a[2]==a[3]){
    	for(int i=3;i<=n;i++){
    		if(a[i]==a[3]){
    			index=i;
    		}else{
    			break;
    		}
    	}
    	cout<<(index*(index-1)*(index-2))/(3*2)<<'\n';
    }
    if(a[1]==a[2] && a[2]!=a[3]){
    	for(int i=3;i<=n;i++){
    		if(a[i]==a[3]){
    			index=i;
    		}else{
    			break;
    		}
    	}
    	cout<<(index-2)<<'\n';
    }
    if(a[1]!=a[2] && a[2]!=a[3]){
    	for(int i=3;i<=n;i++){
    		if(a[i]==a[3]){
    			index=i;
    		}else{
    			break;
    		}
    	}
    	cout<<(index-2)<<'\n';
    }
    if(a[1]!=a[2] && a[2]==a[3]){
    	for(int i=3;i<=n;i++){
    		if(a[i]==a[3]){
    			index=i;
    		}else{
    			break;
    		}
    	}
    	cout<<(index-1)*(index-2)/2<<'\n';
    }
    return 0;
}
相关推荐
汀、人工智能8 小时前
[特殊字符] 第40课:二叉树最大深度
数据结构·算法·数据库架构·图论·bfs·二叉树最大深度
沉鱼.448 小时前
第十二届题目
java·前端·算法
大熊背9 小时前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
西岸行者10 小时前
BF信号是如何多路合一的
算法
大熊背10 小时前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考11 小时前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
Liudef0611 小时前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算
OYpBNTQXi13 小时前
SEAL全同态加密CKKS方案入门详解
算法·机器学习·同态加密
蚂蚁数据AntData13 小时前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ZC跨境爬虫13 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化