『写在前面的一些基础语法』
定义 和 赋值
pair<int,char> a; 1.make_pair(233,'o'); 2.a.first=233;a.second='o';pair<int,string> b;pair<int,struct> c;pair<int,pair<int,int>> d;
Pair整体给我的感觉就和结构体是一样一样的,没有什么过于明显的特性
『上题上题』
【买蛋糕】
今天是路路的生日,生日蛋糕自然是少不了。路路的朋友们一起去蛋糕店来买蛋糕,可是等一行人到了蛋糕店之后,发现那里是人山人海啊-_-。这下可把店家给急坏了,因为人数过多,需求过大,所以人们要等好长时间才能拿到自己的蛋糕。由于每位客人订的蛋糕都是不同风格的,所以制作时间也都不同。老板为了最大限度的使每位客人尽快拿到蛋糕,因此他需要安排一个制作顺序,使每位客人的平均等待时间最少。这使他发愁了,于是他请你来帮忙安排一个制作顺序,使得每位客人的平均等待时间最少。
【输入要求】
输入有两行。第一行是一个整数n,表示有n种蛋糕等待制作(1≤n≤100)。
第二行有n个数,第i个数表示第i种蛋糕的制作时间。
【输出要求】
输出包括一行,有n个整数,整数间用空格隔开,
行末没有空格,是蛋糕的制作顺序,
每个数即是蛋糕的编号。
【输入样例】
8
4 5 3 3 1 4 6 7
【输出样例】
5 3 4 1 6 2 7 8
『代码代码』
#include <bits/stdc++.h>
using namespace std;
pair<int,int> cake[101];
bool cmp(const pair<int,int>& a, const pair<int,int>& b)
{
return a.second<b.second;
}
int main(){
int n,t;
cin>>n;//输入蛋糕总数
for(int i=0;i<n;i++){
cin>>t;
cake[i] = make_pair(i+1,t);//把输入的时间赋值给pair
}
sort(cake,cake+n,cmp);
for(int i=0;i<n;i++){
cout<<cake[i].first<<" ";
}
return 0;
}
[运行结果]