Liny_@NotePad

沉迷ACG中

Choose ACMer

YOYO posted @ 2009年5月12日 18:30 in 【ICPC】解题报告 , 2067 阅读

FJNU2061:http://acm.fjnu.edu.cn/show?problem_id=2061

按照条件直接模拟即可。数据貌似有问题囧,最后改成double才过。

  1. #include<iostream>
  2. #include<string>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. int m,n;
  7.  
  8. typedef struct{
  9.         string name;
  10.         bool sex;
  11.         int grade;
  12.         double score;
  13.         double cscore[15];
  14. }player;
  15.  
  16. bool cmp(player a, player b){
  17.         if(a.score>b.score) return true;
  18.         if(a.score<b.score) return false;
  19.         if(!a.sex&&b.sex) return true;
  20.         if(a.sex&&!b.sex) return false;
  21.         if(a.grade>b.grade) return true;
  22.         if(a.grade<b.grade) return false;
  23.         return a.name<b.name;
  24. }
  25.  
  26. int main(){
  27.         while(cin>>n>>m){
  28.                 player p[1005];
  29.                 int cnum[15];
  30.                 char ch;
  31.                 int i,j;
  32.                 memset(cnum,0,sizeof(cnum));
  33.                 for(i=0; i<m; i++){
  34.                         cin>>p[i].name;
  35.                         cin>>ch;
  36.                         p[i].sex = ch=='F'?false:true;
  37.                         cin>>p[i].grade;
  38.                         for(j=0; j<n; j++){
  39.                                 cin>>p[i].cscore[j];
  40.                                 cnum[j] += p[i].cscore[j];
  41.                         }
  42.                 }
  43.                 for(i=0; i<m; i++){
  44.                         p[i].score = 0;
  45.                         for(j=0; j<n; j++){
  46.                                 p[i].cscore[j] /= cnum[j];
  47.                         }
  48.                         sort(p[i].cscore, p[i].cscore+n);
  49.                         for(int k=2; k<n; k++){
  50.                                 p[i].score += p[i].cscore[k];
  51.                         }
  52.                 }
  53.                 sort(p,p+m,cmp);
  54.                 if(m>50)m=50;
  55.                 for(i=0; i<m; i++){
  56.                         cout<<p[i].name<<endl;
  57.                 }
  58.         }
  59.         return 0;
  60. }
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter