95pts求调,#4 WA了

P1563 [NOIP2016 提高组] 玩具谜题

你应该用p代表people的脸,你这一段代码: ``` if(x==0)//左 { if(a[id].p==0) id = ((id - num - 1) % n + 1 + n) % n; else id = (id + num - 1) % n + 1; } if(x==1) { if(a[id].p==0) id = (id + num - 1) % n + 1; else id = ((id - num - 1) % n + 1 + n) % n; } ``````` 应该改为: ``` if(a[id].p==x)//左 { id-=num; if(id<=0) id+=n; } else { id+=num; if(id>n) id-=n; } `````` 整体代码: ``` #include<bits/stdc++.h> using namespace std; struct people { int p; string job; } a[100005]; int main() { int n,m; cin>>n>>m; for(int i=1; i<=n; i++) { cin>>a[i].p>>a[i].job; } int id=1; int x,num; for(int i=1; i<=m; i++) { cin>>x>>num; if(a[id].p==x)//左 { id-=num; if(id<=0) id+=n; } else { id+=num; if(id>n) id-=n; } } cout<<a[id].job; return 0; }```
by liyanchenlycccccc @ 2023-08-26 13:59:24


@[liyanchencxk](/user/791994) 能看懂,但是为什么我这么写就不对啊
by PorkSausage @ 2023-08-27 14:39:24


|