『题解』CodeForces CF120B Quiz League
题目传送门
题目大意
给定
思路
模拟即可。
也不需要用什么队列,不用什么 % 运算,咱直接将原数组复制一遍到后面接着,然后从第
比较玄学的是,这题还要文件输入输出...所以要加上两句:
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
代码
#include <iostream>
using namespace std;
int n,k,a[2005]; // 由于要复制数组,所以开两倍空间
int main(){
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout); // 文件输入输出
cin >> n >> k;
for(int i=1; i<=n; i++){
cin >> a[i];
a[i+n]=a[i]; // 一边输入一边复制
}
while(!a[k++]); // 找第一个 1
cout << (k-2)%n+1 << endl;
// 找到 1 之后 k 会多一位,然后由于下标从 1 开始又多了
// 所以要 (k-1)%n
// (k-1)%n 之后的范围又在 [0,n-1],所以要加一,变成[1,n]。
return 0;
}