hdu 1084 What Is Your Grade? -水题
2017-12-31 19:59
519 查看
链接:1084
2017年竟然以一道水题收尾。。。
大概意思:
有5道题,作对5题得100分,一题不对得50分,其余情况得n*10+50分,n是题数,在1至4题的人中,每种题数按时间排序的前一半人有5分加分
直接根据题数分类,然后按照时间顺序将各个分类排序,时间直接使用string处理按字典序排序。
代码:
2017年竟然以一道水题收尾。。。
大概意思:
有5道题,作对5题得100分,一题不对得50分,其余情况得n*10+50分,n是题数,在1至4题的人中,每种题数按时间排序的前一半人有5分加分
直接根据题数分类,然后按照时间顺序将各个分类排序,时间直接使用string处理按字典序排序。
代码:
#include<bits/stdc++.h> using namespace std; struct node{ int u,n; string ti; node(int a=0,int b=0,string c=0):u(a),n(b),ti(c){} bool operator < (node x){ return ti<x.ti; } }; vector<node> q[7]; int num[110]; //存成绩 int main(){ int n,u; string v; while(cin>>n&&n>0){ memset(num,0,sizeof(num)); for(int i=0;i<7;i++)q[i].clear(); for(int i=0;i<n;i++){ cin>>u>>v; q[u].push_back(node(i,u,v)); } for(int i=0;i<q[0].size();i++)num[q[0][i].u]=50; for(int i=1;i<5;i++){ sort(q[i].begin(),q[i].end()); for(int j=0;j<q[i].size();j++)num[q[i][j].u]=i*10+50; if(q[i].size()==1)num[q[i][0].u]+=5; else for(int j=0;j<q[i].size()/2;j++)num[q[i][j].u]+=5; } for(int i=0;i<q[5].size();i++)num[q[5][i].u]=100; for(int i=0;i<n;i++)cout<<num[i]<<endl; cout<<endl; } }
相关文章推荐
- hdu 1084 What Is Your Grade(水题)
- HDU ACM 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?
- HDU1084--What Is Your Grade?
- What Is Your Grade? HDU - 1084
- HDU 问题1084 What Is Your Grade?(结构体+sort)
- HDU-1084-What Is Your Grade?
- hdu 1084 What Is Your Grade?
- Hdu 1084 What Is Your Grade?解题报告
- HDU 1084 What Is Your Grade? (模拟题)
- hdu 1084 What Is Your Grade?
- HDU 1084:What Is Your Grade?
- HDU 1084(What Is Your Grade?)解题纠错
- hdu 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?
- hdu 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade
- HDU 1084 What Is Your Grade?