C++ Codeforces问题(无法检测代码中的问题)

C++ Codeforces问题(无法检测代码中的问题),c++,math,greedy,C++,Math,Greedy,在过去的两天里,我一直在练习codeforces。我是编程新手,目前正在解决实现问题 这个问题是1337B(卡纳与龙之旅) 我无法找出这段代码中的错误。请帮帮我 #include <iostream> #include <string> using namespace std; int main() { int t; cin>>t; for (int i=0;i<t;i++) { long long int x,n,m;

在过去的两天里,我一直在练习codeforces。我是编程新手,目前正在解决实现问题

这个问题是1337B(卡纳与龙之旅)

我无法找出这段代码中的错误。请帮帮我

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin>>t;

for (int i=0;i<t;i++)
{
    long long int x,n,m;
    cin>>x>>n>>m;


        for( int j=0;j<n&&x>0&&x>20;j++)
        {


            x=x/2+10 ;


        }






          x=x-m*10;


     if (x>>0)
     {
        cout<<"NO"<<endl;
     }
     else
     {
        cout<<"YES"<<endl;
     }


}

    return 0;

}
#包括
#包括
使用名称空间std;
int main()
{
int t;
cin>>t;
对于(inti=0;i>x>>n>>m;
对于(int j=0;j0&&x>20;j++)
{
x=x/2+10;
}
x=x-m*10;
如果(x>>0)
{

cout您的代码是正确的,但最后出现了一个小错误。您使用x>>0而不是x>0。“>>”是一个按位移位运算符,而不是大于运算符。在使用codeforces测试输入进行检查后,它似乎可以正常工作。这是没有错误的版本

if (x>0)
  {
    cout<<"NO"<<endl;
  }
else
  {
    cout<<"YES"<<endl;
  }
if(x>0)
{

coutPlease包括您的测试输入、预期输出和实际输出。没有人会去codeforces查找这个问题。也就是说,
if(x>>0)
看起来像一个打字错误。使用有意义的变量名并在二进制运算符之间使用空格。发布代码时也要减少过多的垂直空格。这将使您的代码更容易调试,更容易被第三方阅读。
x>0&&x>20
也可以减少到
x>20
,尽管这些愚蠢的操作的全部目的是编程挑战/黑客攻击/网站编码对我来说一直都是完全不清楚的,这里有一件事似乎很清楚:
如果(x>>0)
不做你认为它做的事情。