50分,WA on #2,求指点
查看原帖
50分,WA on #2,求指点
935112
王曦2012楼主2025/1/22 09:06
#include<bits/stdc++.h>

using namespace std;

int t,n,x;
int a[10];

int main()
{
    scanf("%d",&t);
    while(t--)
    {
        int flag = 0;
        scanf("%d%d",&n,&x);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            if((x > 0 && a[i] > 0)
               || (x > 0 && a[i] > 0)
               || abs(x) % abs(a[i]) != 0)
            {
                flag = 1;
            }
            else
            {
                x = x + (abs(x) / abs(a[i]) - 1) * a[i];
            }
        }
        if(flag)
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }
    }

    return 0;
}

思路:

  • xxaia_i 同号时 ,flag=1flag = 1
  • xxaia_i 异号时, if(abs(x) % abs(a[i]) != 0) ,是就 flag=1flag = 1 ,否则用 aia_i 去减 xxxxaia_i
  • 最后 flag=1flag = 1 时,就输出 Yes , 否则输出 No

样例过了,评论区的hack也过了,但WA on #2。
求大师指点。

2025/1/22 09:06
加载中...