本蒟蒻因为太蒻不会做
题目背景
阿杰是斗罗大陆的一名6岁儿童,斗罗历2023年2月5日是他觉醒武魂的日子。
随着科技的不断发展,武魂可以进行选择了!(对不起各位先前废武魂拥有者)。
现在阿杰想要请你帮忙算一算选哪3个武魂最省时还有超强的能力!(一定要最优哦!)
三生武魂了解一下!
题目描述
有n个武魂,第i武魂的能力值为Mi,觉醒第i个武魂的时间为Ti,武魂组合的能力值是(最大的武魂的能力值+最小武魂的能力值)×武魂个数÷2
现在阿杰想要知道能在尽可能少的时间内获得能力值最多的三武魂组合
阿杰的想法:武魂能力值优先,如果能力值相同,时间越短越好!
三生武魂很常见的好不好当年霍雨浩叱咤江湖不就三生吗
输入格式
第一行输入一个正整数n 后面接着输入n行 第1+i行输入Mi Ti两个非负有理数
输出格式
输出第几(i)个组合尽可能少的时间内获得能力值最多的三武魂组合 即3个i 中间用空格分开
输入输出样例
输入
4
1 1
2 3
4 1
4 2
输出
2 3 4
说明/提示
数据范围
(保证不会有重复相同时间获得精力值最多的三武魂组合)
50>=n>=3 0<Ti<9223372036854775807.0
40%的数据保证 Mi<9223372036854775807.0
100%的数据保证 0<Mi<9223372036854775807+65536
替阿杰谢谢你
#include<bits/stdc++.h>
using namespace std;
long long n;
bool vis[1000005];
struct node{
double x;
int id;
}a[100005];
double b[1000005];
bool cmp(node x,node y)
{
return x.x>y.x;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].x>>b[i];
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=3;i++)
{
vis[a[i].id]++;
}
for(int i=1;i<=n;i++)
{
if(vis[i]!=0)
{
cout<<i<<" ";
}
}
return 0;
}