当前位置: 首页 > news >正文

刷题日记day15-按身高和体重排队


文章目录

  • 前言
  • 一、问题复述
  • 二、解法及其思想
  • 三、代码实现及细节


前言

简单写个日记记录我刷了什么题以及心得总结。


一、问题复述

  • 学生按编号进行标识,对他们进行按身高和体重的低到高排列。排列队则:先按身高排,身高同按照体重排。身高体重都相同再按照编号排。
  • 输入:
    • 第一行:学生个数
    • 第二行:所有学生身高,以空格分隔
    • 第三行:所有学生体重,以空格分隔
  • 输出:按编号的排列结果,从1开始编号,以空格分隔

二、解法及其思想

  • 简单的自定义排序和数据处理。

三、代码实现及细节

#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;

struct info {
	int num;
	int height;
	int weight;
	info(int num,int h, int w) :num(num),height(h), weight(w) {}
};

bool compare(info a, info b) {
	if (a.height != b.height) {
		return a.height < b.height;
	}
	else if(a.weight!=b.weight){
		return a.weight < b.weight;
	}
	else {
		return a.num < b.num;
	}
}
int main() {
	int n;
	cin >> n;
	vector<int> hs;
	vector<int> ws;
	for(int i = 0; i < n; i++) {
		int val;
		cin >> val;
		hs.push_back(val);
	}
	for (int i = 0; i < n; i++) {
		int val;
		cin >> val;
		ws.push_back(val);
	}
	vector<info> inf;
	for (int i = 0; i < n; i++) {
		//emplace_back可直接构造
		inf.emplace_back(i+1,hs[i], ws[i]);
	}
	sort(inf.begin(), inf.end(), compare);
	for (auto e : inf) {
		cout << e.num << " ";
	}
	return 0;
}

相关文章:

  • 网站功能报价明细表营销型网站重要特点是
  • 阿里云如何添加新网站腾讯新闻发布平台
  • 那里可以做网站上海搜索排名优化
  • 金融做网站网站被百度收录
  • 印刷报价网站源码seo百度贴吧
  • 网站建设项目汇报国内好用的搜索引擎
  • swagger问题解决
  • 【常春藤盟校的「社会资本交易所」本质】
  • 什么是Java值传递和引用传递?
  • prism wpf 入门
  • 自动化部署核心概念与实践
  • Redis 哈希表结构详解
  • QtAV入门
  • 两数之和-力扣
  • 【Redis】基础1——基本概念,基本数据结构
  • 如何快速搭建高可用 Easysearch 集群 ?Ubuntu 多节点部署指南
  • 基于WMI与WinRM的横向移动技术深度解析
  • C语言函数递归
  • 程序化广告行业(44/89):岗位职责与RTB竞价逻辑深度解析
  • 算法练习篇目:删除有序数组中的重复项
  • Spring Cloud Alibaba 技术全景与实战指南
  • 多路径软件multipath配置详解
  • 【Linux】线程互斥同步
  • 【力扣hot100题】(018)螺旋矩阵
  • 借助FastAdmin和uniapp,高效搭建AI智能平台
  • 基于Python的火车票管理系统的设计与实现