题目描述 在一个游乐园中有一个翻卡片的游戏项目,这个项目的规则如下:
有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;
}
}
哪错了?