今天刷题的时候刷到一个题,在我纠结用map时,发现在输出的时候很是麻烦,这时候看到了结构体,题目如下:
题目描述
输入描述:
输出描述:
示例1
输入
4
math 100 90
algorithm 10 8
string 50 1
dp 100 50
输出
algorithm 3
dp 4
math 3
string 5
题目中有三种类型,并且三种类型是绑在一起的,一个题目的名称与他的提交次数,通过次数是绑在一起的。如果不用结构体的话,想绑在一起,也可以用map,这里上一下结构体的实现:
#include <string>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
struct question
{
string name;
float x;
float y;
};
bool cmp(question q1,question q2)
{
if(q1.name<q2.name)
{
return true;
}else
{
return false;
}
}
int main()
{
int n;
cin>>n;
vector<question> res(n);
for(int i=0;i<n;i++)
{
cin>>res[i].name>>res[i].x>>res[i].y;
}
sort(res.begin(),res.end(),cmp);
for(int i=0;i<n;i++)
{
int lever=0;
if((float)(res[i].y/res[i].x)<=0.3)
{
lever=5;
}else if((float)(res[i].y/res[i].x)<=0.6)
{
lever=4;
}else if((float)(res[i].y/res[i].x)<=1.0)
{
lever=3;
}
cout<<res[i].name<<" "<<lever<<endl;
}
return 0;
}