HDOJ1236 排名解题报告
2014-07-27 10:20
337 查看
题目很容易,要排序什么的 要二级排序,下面是代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Info
{
char num[21];
int solve[10];
int sum;
}Info;
int cmp(const void *a,const void *b)
{
int a1=((Info *)a)->sum,b1=((Info *)b)->sum;
if(a1!=b1)
return b1-a1;
else
return strcmp(((Info *)a)->num, ((Info *)b)->num);
}
int main()
{
int N,M,G;int score[10],m,index;
Info info[1000];
while(scanf("%d",&N))
{
if(N==0)break;
scanf("%d%d",&M,&G);
for(int i=0;i<M;i++)
scanf("%d",&score[i]);
index=0;
int flag=0;
for(int t=0;t<N;t++)
{
for(int g=0;g<21;g++)
info[t].num[g]='\0';
}
for(int j=0;j<N;j++)
{
scanf("%s",info[index].num);
scanf("%d",&m);
info[index].sum=0;
for(int k=0;k<m;k++)
{
scanf("%d",&info[index].solve[k]);
info[index].sum+=score[info[index].solve[k]-1];
}
if(info[index].sum>=G)
{
index++;
flag=1;
}
}
if(flag)
{
qsort(info,index,sizeof(info[0]),cmp);
printf("%d\n",index);
for(int y=0;y<index;y++)
{
printf("%s %d\n",info[y].num,info[y].sum);
}
}else{
printf("0\n");
}
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Info
{
char num[21];
int solve[10];
int sum;
}Info;
int cmp(const void *a,const void *b)
{
int a1=((Info *)a)->sum,b1=((Info *)b)->sum;
if(a1!=b1)
return b1-a1;
else
return strcmp(((Info *)a)->num, ((Info *)b)->num);
}
int main()
{
int N,M,G;int score[10],m,index;
Info info[1000];
while(scanf("%d",&N))
{
if(N==0)break;
scanf("%d%d",&M,&G);
for(int i=0;i<M;i++)
scanf("%d",&score[i]);
index=0;
int flag=0;
for(int t=0;t<N;t++)
{
for(int g=0;g<21;g++)
info[t].num[g]='\0';
}
for(int j=0;j<N;j++)
{
scanf("%s",info[index].num);
scanf("%d",&m);
info[index].sum=0;
for(int k=0;k<m;k++)
{
scanf("%d",&info[index].solve[k]);
info[index].sum+=score[info[index].solve[k]-1];
}
if(info[index].sum>=G)
{
index++;
flag=1;
}
}
if(flag)
{
qsort(info,index,sizeof(info[0]),cmp);
printf("%d\n",index);
for(int y=0;y<index;y++)
{
printf("%s %d\n",info[y].num,info[y].sum);
}
}else{
printf("0\n");
}
}
return 0;
}
相关文章推荐
- HDOJ 2084 数塔 简单解题报告
- HDOJ 1009 FatMouse' Trade解题报告
- hdoj-2013-蟠桃记(解题报告)
- HDOJ-1395-2^x mod n = 1 解题报告
- hdoj1009解题报告
- 杭电HDOJ 1061 解题报告
- HDOJ-5050-Divided Land 解题报告
- 【解题报告】1004. 成绩排名
- HDOJ1022 Train Problem I 解题报告
- HDOJ 1010:Tempter of the Bone 迷宫问题 解题报告
- 最小生成树——HDOJ 2988 Dark roads解题报告
- 解题报告-HDOJ-1233(最小生成树——kruskal)
- HDOJ2511汉诺塔X 解题报告(很奇葩,请勿吐槽)
- HDOJ-1875-畅通工程再续 解题报告
- HDOJ 1236 排名
- HDOJ 1069 Monkey and Banana 解题报告
- HDOJ 1176 免费馅饼 简单解题报告
- [解题报告]hdoj1069(动态规划)
- hdoj 排名 1236 (简单排序)
- hdoj-2017-字符串统计(解题报告)