白いマウスが並んでいます(北京大学のマシンでの再テスト)

序文:

21.再テストに参加できるかどうかに関係なく、道路に書かれたゴミコードを記録します。もともと「AlgorithmNotes」をかじったのですが、やりすぎたので、Kingway ComputerTestGuideに変更しました。

タイトル説明:

N個の白いマウス(1 <= N <= 100)で、各マウスの頭には色付きの帽子をかぶっています。次に、各マウスの重量を量り、マウスの重量の順に頭に帽子の色を出力します。帽子の色は「赤」や「青」などの文字列で表されます。異なる白いマウスは同じ色の帽子をかぶることができます。白ネズミの体重は整数で表されます。

説明を入力してください

マルチケース入力。各ケースの入力の最初の行は、マウスの数を表す整数Nです。
下にN行あり、各行は白いマウスの情報です。1つ目は、白いマウスの重さを表す100以下の正の整数です。2つ目は、白いマウスの帽子の色を表す文字列で、文字列の長さは10文字を超えません。

注:白いマウスの体重はさまざまです。

出力の説明:

いずれの場合も、白ネズミの帽子の色が白ネズミの体重順に出力されます。

回答

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<stdio.h>
using namespace std;

struct mos {
    
    
	string color;
	int weight;
};
bool cmp(mos mos1,mos mos2) {
    
    
	return mos1.weight > mos2.weight;
}

int main()
{
    
    	
	int n;
	while (scanf("%d", &n) != EOF) {
    
    
		vector<mos> vi;
		mos temp;
		for (int i = 0; i < n; i++)
		{
    
    
			cin >> temp.weight >> temp.color;
			vi.push_back(temp);
		}
		sort(vi.begin(), vi.end(), cmp);
		for (int i = 0; i < n; i++)
			cout <<vi[i].color<<endl;
	}
	return 0;
}

おすすめ

転載: blog.csdn.net/weixin_44897291/article/details/112784320