95分模拟代码如何再提高?

回复帖子

@__Kinger__ 2018-10-11 23:26 回复

RT,求助大佬

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iomanip>
#include<algorithm>
using namespace std;

int n,m;
struct c{
    string n;
    bool f;
}a[100005];
int ai,si;

int main()
{
    //freopen("1.txt","r",stdin);
    cin>>n>>m;
    for(register int q=1;q<=n;q++)
    {
        cin>>a[q].f>>a[q].n;
    }
    int xx=1;
    for(register int w=1;w<=m;w++)
    {
        cin>>ai>>si;
        if(ai==0)
        {
            if(a[xx].f==0)
            {
                xx-=si;
                if(xx<=0)
                xx+=n;
            }
            else
            {
                xx+=si;
                if(xx>=n)
                xx-=n;
            }
        }
        else 
        {
            if(a[xx].f==0)
            {
                xx+=si;
                if(xx>=n)
                xx-=n;
            }
            else
            {
                xx-=si;
                if(xx<=0)
                xx+=n;
            }
        }
    }
    cout<<a[xx].n;
    return 0;
}

在角落里瑟瑟发抖保佑复赛上270分的弱省蒟蒻一枚

@Frozencode 2018-10-12 07:06 回复

@Kinger 你判断小于1或者>n的时候应该用while,它可能小了或者大了不止一个n