貌似测试样例不够准确
查看原帖
貌似测试样例不够准确
1004193
Xing_Kong_C楼主2023/8/6 13:02

我本来敲代码,敲着敲着忽然发现感觉我写的有问题,然后继续写完提交就ac了。 但是吧我用的直接排序没有考虑横纵坐标的对应关系,我随便就找到一组我的代码不成立的测试样例。

AC代码如下


#include<iostream>
#include<algorithm>
using namespace std;
double  x[20005],y[20005],xmax=-100000,ymax=-100000,xmin=100000,ymin=100000;
double  xi,yi;
int main()
{

    int k;
    cin>>k;
    for(int i=1;i<=k;i++)
    {     cin>>x[i]>>y[i];
        xmax= max(xmax,x[i]);
        xmin=min(xmin,x[i]);
        ymax= max(ymax,y[i]);
        ymin=min(ymin,y[i]);
    }

    xi=(xmax+xmin)/2.;
    yi=(ymax+ymin)/2.;
    sort(x+1,x+1+k);
    sort(y+1,y+1+k);
    for(int i=2,j = k-1;i<=k/2;i++,j--)
    {
        if((x[i]+x[j])/2==xi && (y[i]+y[j])/2==yi);
            else
            {cout<<"This is a dangerous situation!";
            return 0;
        }
    }
    if (k%2==0)
        ;
    else
    {
        if(x[k/2+1]==xi && y[k/2+1]==yi)
        ;
        else
        {cout<<"This is a dangerous situation!";
        return 0;}
    }
    printf("V.I.P. should stay at (%.1f,%.1f).",xi,yi);

    return 0;
}

我将题目里的数据纵轴调换了下位置,画出来不对称,但是我的代码结果是这个点存在;我应该发现的是对的吧;感觉蛮兴奋的hhh貌似找到了bug。

我用的测试样例

8

1 10

3 6

6 4

6 2

3 -4

1 0

-2 -2

-2 8

//代码运行结果是V.I.P. should stay at (2.0,3.0).

6 4关于(2.0,3.0)的对称点应该是(-2,2),我的测试样例中没有这个点;

嘿嘿嘿,在洛谷发的第一个评论,结束,撒花,啦啦啦。

2023/8/6 13:02
加载中...