问题 F: 小明与隔壁老王之间不得不说的故事

题目描述

有一天,小明想偷吃隔壁老王院子里苹果树上的苹果。

但是,老王家有一条哈士奇,每隔一定时间就会吼叫。准确的说,它会在一个时间点吼叫第一次,之后每隔一段时间吼叫两次,比如第一次吼叫是在t时刻,间隔为s,则吼叫时间点为t, t + s, t + s + 1, t + 2s, t + 2s + 1等。

小明是个要面子的人,不想被这么二的汪吼,所以想请你预测一下结果。

给出吼叫时间和小明的行动时间,如果会被吼则输出”YES”,否则输出”NO”。


输入

第一行一个整数T,表示数据组数

对于每组数据,给出三个整数t s x,分别表示第一次吼叫的时间,吼叫间隔,和小明行动时间。

数据约定:

0 ≤ t, x ≤ 1e9, 2 ≤ s ≤ 1e9

输出

输出YES或NO

样例输入

4
3 10 4
3 10 3
3 8 51
3 8 52

样例输出

NO
YES
YES
YES

这个题做了许多遍,始终没找出bug在哪,到最后也没能提交/(ㄒoㄒ)/~~
wa代码:
#include <cstdio>
#include <iostream>
using namespace std;
 
int main()
{
    ios::sync_with_stdio(false);
    int s, t, x;
    int T;
    cin>>T;
    while(T--)
    {
        int flag = 0;
        cin>>s>>t>>x;
         
        if(s>=2)
        {
            int i = 0;
        int k = x - s;
        while(k >= 0)
        {
            if(k == 0)
            {
                flag = 1;
                break;
            }
            if(i > 0)
                if(k - 1 == 0)
                {
                    flag = 1;
                    break;
                }
            i++;
            k = x - s - i * t;
        }
        if(flag)
            printf("YES\n");
        else
            printf("NO\n");
        }
         
    }
    return 0;
}
ac代码:
#include <iostream>
#include <string>
#include <iomanip>
#include <algorithm>
using namespace std;
int main()
{
    int z,t,x,i,s;
    int T;
    cin>>T;
    for(int j=0;j<T;j++)
    {
        int i=1;
        cin>>t>>s>>x;
        z=t;
        while(z<x)
        {
            z=t+i*s;
 
            if(z<x)
            {
                z++;
            }
            i++;
        }
        if(z==x)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}
港真,能看懂ac的代码,但是觉得也找不出自己的错在哪……心累


NO
YES
YES
YES
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值