0
已解决
董宇昊
初级启示者
初级启示者
5052 寻宝!
题目描述 Description
小明的爷爷给小明留下了一份藏宝图,标注了一个城堡的宝藏位置。这个城堡有n个房间,房间呈环形排列,按顺时针给房间编号0~n-1,并且0号房间和n-1号房间是相连的。每个房间有一个指示牌,指示牌上给出一个数字,按照指示牌的数字顺时针走:比如在0号房间,指示牌写的是3,那么他就要走到3号房间;到3号房间的指示牌写着2,那就要走到5号房间 …… 直到有一个房间的指示牌为0,说明找到了宝箱。如果在找到宝箱之前,小明走到了曾经走过的房间,说明再也找不到宝箱了,输出NO。
城堡的大门前有一个传送阵,小明心怀忐忑的进入了这个传送阵,结果被随机传送到了某一个房间,他开始顺着指示牌走,问:他总共需要进入几个房间才可以找到宝箱(最开始被传送进的房间也算)?
输入描述 Input Description
输入三行:
第一行一个数字n,表示城堡有n个房间(n<=100)
第二行n个数字,表示城堡每个房间的指示牌上的数字(数字不超过n)
第三行一个数字x,表示小明第一次随机传送到编号x的房间
输出描述 Output Description
输出一行
如果能够找到宝箱,输出一个数字,表示经过几个房间可以找到宝箱
如果不能找到宝箱,输出NO
样例输入 Sample Input
50
5 10 10 5 5 7 8 8 7 10 8 7 9 8 6 8 10 10 6 10 10 10 6 8 7 10 7 6 6 9 10 9 9 9 5 8 10 7 8 6 9 9 6 8 8 10 9 5 8 0
1
样例输出 Sample Output
7
董宇昊在2020-08-19 11:54:19追加了内容
#include <iostream> #include <cmath> #include <string> #include <cstdio> using namespace std; int a[101],cnt; int main(){ int n,t; cin>>n; for(int i=0;i<=n-1;i++){ cin>>a[i]; } cin>>t; cout<<"NO"; return 0; }
30分代码
董宇昊在2020-08-19 12:09:10追加了内容
老师讲过了
谁先回答,采纳谁。
董宇昊在2020-08-19 12:09:27追加了内容
200酷町豆
0
已采纳
李素妍
新手天翼
新手天翼
- for(int i=0;i<n;i++){
- cin>>a[i];
- }
- cin>>x;
- while(vis[x]==0&&a[x]!=0){
- vis[x]++;
- cnt++;
- x=(x+a[x])%n;
- }
0
0
0
0
0
0