RUN ID343625

以下是我的代码:

#include

using namespace std;

int y[50],r[50];

int TF(int a,int b)

{

int c;

if(r[a]>r[b]) return 0;

for(c=b+1;c<a;c++)

{

if(r[c]>=r[a]) return 0;

}

return 1;

}

int maybe(int a ,int b) {

int c,d=0;

for(c=b;c<a;c++)

{

if(y[c]+1<y[c+1]) { return 2; }

}

return 1;

}

int main()

{

int X,Y,m,n,a,b,i,j,k,l;

cin>>n;

for(i=0;i<n;i++)

cin>>y[i]>>r[i];

cin>>m;

for(i=0;i<m;i++)

{

cin>>Y>>X;

for(j=0;j<n;j++)

{

if(X==y[j]) a=j;

if(Y==y[j]) b=j;

}

l=0;

k=TF(a,b);

if(k==0) { cout<<"false"<<endl; continue; }

l=maybe(a,b);

if(l==2) { cout<<"maybe"<<endl; continue; }

if(l==1) { cout<<"true"<<endl; continue; }

}

return 0;

}

6 条评论

  • @ 2021-7-18 21:43:57

    @applese

    数据范围的话数组大小我试过用50000,变量我能想到的只有long int也不行所以上面程序才用的int和y[50];

    我整个程序虽然现在无法AC但逻辑并没有错,我诚心诚意地发问了,你不说也就算了,用个puts吐槽我又是要作甚?

    • @ 2021-7-9 19:10:41

      最后吐槽一句。。puts("2\n0\n2\n1\n3"),他给的样例输入我本机输出答案是对的啊。。。为什么交上来WA了呢。。

      • @ 2021-7-9 19:10:27

        原来你的逻辑是样例过了就是A了啊。。。自己看看原题数据范围。。。再不懂就别做了吧 = =+

        • @ 2021-7-8 13:08:12

          ??????????????????????????

          • @ 2021-5-27 16:31:45

            @Seter 抱歉发上来才发现木有缩进。。。本机我确实是运行通过答案对的啊。。。有问题烦请明示。。。

            我的思路是将X,Y的具体年份数值转换为下标a,b,先假设年份没有空缺,用TF函数判定是否直接为F,没有的话再用maybe函数判定年份是否连续,不连续的话判为maybe连续判T;他给的样例输入我本机输出答案是对的,VS2010编译器。。。

            当然你要吐槽我是“C风格的C++”。。。这。。。

            • @ 2021-5-27 12:24:40

              代码明显有问题,你本机是怎么A的。。

            • 1

            信息

            ID
            1067
            时间
            1000ms
            内存
            256MiB
            难度
            9
            标签
            (无)
            递交数
            10
            已通过
            4
            上传者