洛谷T304782 不会做 https://www.luogu.com.cn/problem/T304782

本蒟蒻因为太蒻不会做
题目背景

阿杰是斗罗大陆的一名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

40%的数据保证 Mi<9223372036854775807.0

100%的数据保证 0

替阿杰谢谢你

#include
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<" ";
        }
    }
    return 0;
}

只有四十分
不知道哪里错了
求各位巨佬帮忙看下 悬赏一个关注 qwq

时间也要参与排序,能力值相同时,时间值小的排前面