hdoj1084 What Is Your Grade?(思路很简单)
2017-06-13 16:20
330 查看
来源:http://acm.hdu.edu.cn/showproblem.php?pid=1084
感觉我已经用stl走火入魔了,看到这道题需要分别对完成不同题数的学生进行排序,就又想用vector存储,v[i]的i表示的是做出题的题数。
代码有点长和拖但很明了。
注:对二维数组进行sort()函数排序,可以把数组首地址和末地址+1读入
代码如下:
感觉我已经用stl走火入魔了,看到这道题需要分别对完成不同题数的学生进行排序,就又想用vector存储,v[i]的i表示的是做出题的题数。
代码有点长和拖但很明了。
注:对二维数组进行sort()函数排序,可以把数组首地址和末地址+1读入
代码如下:
#include<stdio.h> #include<string> #include<iostream> #include<vector> #include<algorithm> using namespace std; typedef struct student { int index; int time; int score; int sum; }student; student ss[105]; vector<student>v[6]; bool cmp(const student a,const student b) { return a.time<b.time; } bool cmp1(const student a,const student b) { return a.index<b.index; } int main() { int i,j,num,s,f,m,sum; student s1; while(~scanf("%d",&num)&&num!=-1) { for(i=0;i<6;i++)v[i].clear(); for(i=1;i<=num;i++) { scanf("%d%d:%d:%d",&sum,&s,&f,&m); s1.index=i;s1.time=s*3600+f*60+m; s1.sum=sum; v[sum].push_back(s1); } for(i=0;i<6;i++) { if(v[i].size()) sort(&v[i][0],&v[i][v[i].size()],cmp);//直接把地址输入,注意不需要v[i].size()-1!!!! } for(i=0;i<v[0].size();i++)v[0][i].score=50; j=v[1].size()/2; for(i=0;i<j;i++)v[1][i].score=65; for(;i<v[1].size();i++)v[1][i].score=60; j=v[2].size()/2; for(i=0;i<j;i++)v[2][i].score=75; for(;i<v[2].size();i++)v[2][i].score=70; j=v[3].size()/2; for(i=0;i<j;i++)v[3][i].score=85; for(;i<v[3].size();i++)v[3][i].score=80; j=v[4].size()/2; for(i=0;i<j;i++)v[4][i].score=95; for(;i<v[4].size();i++)v[4][i].score=90; for(i=0;i<v[5].size();i++)v[5][i].score=100; int k=0; for(i=0;i<=5;i++) { for(j=0;j<v[i].size();j++) { ss[k]=v[i][j]; k++; } } sort(ss,ss+k,cmp1); for(i=0;i<k;i++) printf("%d\n",ss[i].score); printf("\n"); } return 0; }
相关文章推荐
- hdoj 1084 What Is Your Grade?
- HDOJ HDU 1084 What Is Your Grade?
- HDOJ1084 What Is Your Grade?
- HDOJ1084 What Is Your Grade?
- HDU/HDOJ 1084 What Is Your Grade?
- HDOJ 1084 What Is Your Grade?
- HDOJ 1084 What Is Your Grade?
- hdoj 1084 What Is Your Grade?
- hdoj 1084 What Is Your Grade?
- hdu 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?
- hdu 1084 What Is Your Grade(水题)
- What Is Your Grade?(1084)
- HDU——1084 What is your grade?(莫名的Wrong Answer)
- HDU 1084:What Is Your Grade?
- What Is Your Grade?(结构体+(sort))hd 1084
- 杭电OJ—— 1084 What Is Your Grade?
- hdu 1084 What Is Your Grade?
- 杭电OJ—— 1084 What Is Your Grade?
- 【杭电oj】1084 - What Is Your Grade?(排序,迷之WA)