95分第四个点,看其他讨论调整了越界判定,还是不行
查看原帖
95分第四个点,看其他讨论调整了越界判定,还是不行
580428
wow_nice楼主2022/4/2 11:30

求助大佬

我看了其他的95分WA第四个点的讨论贴,基本上都是n<=0误写成了n<0,我据此改过了这个问题,但第四个测试点仍无法通过。希望能有大佬指教。

如下是代码

#include <iostream>
#include <cstring>
using namespace std;

bool a[100000+10];
char name[100000+10][10];

bool check(bool a,bool b)//true +,逆时针,外左(01),
{
    if(a&&b)
    {return false;}
    if((!a)&&(!b)) {return false;}
    return true;
}
int main()
{
    int num=1;
    int m,n;
    scanf("%d %d",&n,&m);
    for(int i =1;i<=n;i++)
    {
        int c;
        scanf("%d",&c);
        if(c==1)
        {
            a[i]=true;
        }
        else
        {
            a[i]=false;

        }
        scanf("%s",name[i]);
    }
    for(int i =1;i<=m;i++)
    {
        int a1,a2;
        bool fuck=false;
        scanf("%d %d",&a1,&a2);
        if(a1==1) fuck=true;
        if(check(a[num],fuck))//+ 为逆时针
        {
            num+=a2;
        }
        else
        {
            num-=a2;
        }
        /*while(num<=0||num>n)
        {
            if(num>0) num%=n;
            if(num<=0) num+=n;
        }*/
        /*
        while(num>n){
            num-=n;
        }
        while(num<1){
            num+=n;
        }*/
        while(num<=0)num+=n;
        while(num>n)num-=n;
    }
    printf("%s",name[num]);



    return 0;
}
2022/4/2 11:30
加载中...