FOJ 1839 Open Source University Meetup

 

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; }

你可能感兴趣的:(游戏)