您的位置:首页 > 运维架构

FOJ 1839 Open Source University Meetup

2009-09-03 12:23 232 查看
http://acm.fzu.edu.cn/problem.php?pid=1839

题目大意:这道题就是学校里面举行若干个游戏项目,每天只举行一个游戏,N个学生都去玩该天举行的游戏,玩每个游戏时,每个学生都会给该游戏评分。现在就是要你求出前K个总评分最高的游戏的分数总和。

解题思路:这个就是每个游戏一个个的求出总和,再排序下,再求前K个数的和就是了。

#include <iostream>
#include <algorithm>
#define Max 1001
using namespace std;

long sum[Max];

int main()
{
int NumOfStudent,NumOfActivity,NumOfDay;
int i;
int k;
long g;
while (scanf("%d%d%d",&NumOfStudent,&NumOfDay,&NumOfActivity)!=EOF)
{
memset(sum,0,sizeof(sum));
while (NumOfStudent--)
{
for (i=0;i<NumOfDay;i++)
{
scanf("%d",&k);
sum[i]+=k;
}
}
sort(sum,sum+NumOfDay);
i = NumOfDay-1;
g = 0;
while (NumOfActivity--)
{
g+=sum[i];
i--;
}
printf("%ld/n",g);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: