C++题目:空气质量 代码

题目描述

蓝天保卫战正式打响了!绿水青山,就是金山银山!

我们有𝑛n个目标城市,编号从1∼𝑛1∼n

现在已经统计了这些城市近两年的空气质量,并决定制定空气质量整治的顺序。

我们希望优先整治空气质量波动较大的城市,也就是两次测定的空气质量差值的绝对值较大的

如果两个城市波动情况相同,则优先整治城市编号较小的

请你确定整治的顺序

输入格式

输入共 𝑛+1n+1 行

第一行输入一个正整数 𝑛n ,表示共有𝑛n个城市

接下来𝑛n行每行两个正整数,依次为11号到𝑛n号城市的两次空气质量情况𝑎𝑖ai​和𝑏𝑖bi​,用一个空格分隔

输出格式

输出一行包含𝑛n个整数,即整治的顺序

输入样例

  1. 5
  2. 2 15
  3. 2 3
  4. 5 8
  5. 6 6
  6. 15 2

输出样例

  1. 1 5 3 2 4

数据规模

对于60%60%的数据, 1≤𝑛≤1001≤n≤100

对于100%100%的数据, 1≤𝑛≤100000,1≤𝑎𝑖,𝑏𝑖≤1000001≤n≤100000,1≤ai​,bi​≤100000

代码
#include<bits/stdc++.h>
using namespace std;
struct node{
    int j,id;
    bool operator<(const node &x)const{
        if(x.j==j){
            return id<x.id;
        }
        return j>x.j;
    }
};
node a[100005];
int main()
{
    int n;
    cin>>n;
    int s=1,d=1;
    for(int i=1;i<=n;i++){
        int c,d;
        cin>>c>>d;
        a[i].j=abs(c-d);
        a[i].id=i;
    }
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++){
        cout<<a[i].id<<" ";
    }
}

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树敌无数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值