U410309 翻卡片
  • 板块灌水区
  • 楼主M15388049303
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/11 11:37
  • 上次更新2024/7/11 13:51:38
查看原帖
U410309 翻卡片
1078808
M15388049303楼主2024/7/11 11:37

题目描述 在一个游乐园中有一个翻卡片的游戏项目,这个项目的规则如下:

有n张上面写着数字的卡片摆成一个圈,这些卡片会从其中的某一张开始,按照顺时针的顺序编号1~n,而且每天还会有一个固定的幸运数字k。游戏开始后,游客挑选某张卡片,将这张卡片以及顺时针数k张卡片的数字和加起来就是本次游戏的得分。

这个项目十分火爆,导致工作人员都忙不过来了!现在要求你写一个程序,对于每个顾客的选择,给出正确的得分答案。

输入格式 输入第1行:数字n,m,k,代表卡片数量,游客数量,还有幸运数字k。

输入第2行:n个数字,代表从1号卡片开始每张卡片的数字a_i。

接下来的m行:每行一个数字,代表每个游客选择卡片的编号b_i。

输出格式 输出m个整数,一个一行,代表每个游客的得分。

#include<bits/stdc++.h>
using namespace std;
int n,m,k,a[110],b[110],s[110],l;
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m;i++){
		int o=0;
		cin>>b[i];
		for(int j=1;j<=n;j++){
			if(a[j]==b[i]){
				l=j;
				break;
			}
		}
		for(int j=l;j<=l+k;j++){
			if(j>n){
				o=1;
				break;
			}
			s[i]+=a[j];
		}
		if(o==1){
			for(int j=1;j<=l+k-n;j++){
				s[i]+=a[j];
			}
		}
	}
	for(int i=1;i<=m;i++){
		cout<<s[i]<<endl;
	}
}

哪错了?

2024/7/11 11:37
加载中...