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;
}
相关推荐
闻缺陷则喜何志丹13 小时前
【回文 字符串】3677 统计二进制回文数字的数目|2223
c++·算法·字符串·力扣·回文
Tisfy13 小时前
LeetCode 0085.最大矩形:单调栈
算法·leetcode·题解·单调栈
mit6.82413 小时前
出入度|bfs|状压dp
算法
hweiyu0013 小时前
强连通分量算法:Kosaraju算法
算法·深度优先
源代码•宸13 小时前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker
mit6.82413 小时前
逆向思维|memo
算法
机器学习之心13 小时前
MATLAB灰狼优化算法(GWO)改进物理信息神经网络(PINN)光伏功率预测
神经网络·算法·matlab·物理信息神经网络
代码游侠13 小时前
学习笔记——ESP8266 WiFi模块
服务器·c语言·开发语言·数据结构·算法
倦王13 小时前
力扣日刷26110
算法·leetcode·职场和发展
涛涛北京13 小时前
【算法比较】
算法