分数 (C++) 下标计数进阶

分数 (C++) 下标计数进阶,第1张

分数 (C++) 下标计数进阶

题目描述:

在sicily在线测试系统里,有一种特别评分方法。题目被越多的用户解出,每个用户该题的得分就越少。现在按照解出题目的用户数划分区间,给出了每个区间的题目的得分情况,如下表: 

解题用户数 分数 

1-10 10 

11-30 8 

31-50 6 

51-75 4 

76-100 2 

100以上 1 

已知解决每个题目的用户数,你的任务是计算出指定用户的分数。

输入格式

第一行是一个整数n(1<=n<=300),表示参加在线测试系统里题目的数量。(题目的编号是从1000—1000+n-1) 

第二行是n个用空格分开的正整数,表示解决了这1-n道题的用户的数量。 

第三行是一个整数t(t<=30),表示要计算分数的用户数量。 

接下来有t行,每行第一个数字表示该用户解题的数量a,接着有a个1000—1000+n-1间的数,表示该用户解了哪些题。 

输出格式

输出有t行,每行对应一个整数,表示对应用户的得分。

输入/输出例子1

输入:

10

100 10 11 3 45 7 34 200 70 1

4

2 1000 1001

2 1001 1002

0

3 1000 1007 1008

输出:

12

18

0

7

样例解释

分析:

这题比较简单,但是却很繁琐啊,这题所给的评分方式标准需要通过6个if来实现

代码如下:

#include 
using namespace std;
int n,t,a[10010],s,x,m;
int main()
{
	cin>>n;
	for(int i=1000;i<=999+n;i++)
	{
		cin>>x;
		if(x>=1&&x<=10) a[i]=10;
		if(x>=11&&x<=30) a[i]=8;
		if(x>=31&&x<=50) a[i]=6;
		if(x>=51&&x<=75) a[i]=4;
		if(x>=76&&x<=100) a[i]=2;
		if(x>100) a[i]=1;
	}
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		cin>>m;
		s=0;
		for(int j=1;j<=m;j++)
		{
			cin>>x;
			s=s+a[x];
		}
		cout< 

文章仅供参考,切勿用于其他目的哦!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5710664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存