Sicily 1961. Closest Points

探讨了一个在解决计数问题时,通过修改输出方式(从printf到cout,或比较距离改为距离平方)使得程序从WA变为AC的现象,分析可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单计数问题,但比较诡异的是WA后,将printf输出改为cout输出就AC了,又或者保持printf输出但改为比较距离(原本是比较距离的平方)也可以AC。具体原因不详……

Run Time: 0sec

Run Memory: 304KB

Code length: 758Bytes

SubmitTime: 2011-12-20 19:39:17

// Problem#: 1961
// Submission#: 1099981
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <cstdio>
#include <cmath>
using namespace std;

struct Coor {
    double x;
    double y;
    double z;
};

int main()
{
    int T, N;
    Coor p, s, keep;
    double closest;

    scanf( "%d", &T );
    while ( T-- ) {
        scanf( "%lf%lf%lf", &p.x, &p.y, &p.z );
        scanf( "%d", &N );
        scanf( "%lf%lf%lf", &s.x, &s.y, &s.z );
        closest = powl( p.x - s.x, 2 ) + powl( p.y - s.y, 2 ) + powl( p.z - s.z, 2 );
        keep = s;
        while ( --N ) {
            scanf( "%lf%lf%lf", &s.x, &s.y, &s.z );
            if ( powl( p.x - s.x, 2 ) + powl( p.y - s.y, 2 ) + powl( p.z - s.z, 2 ) < closest ) {
                closest = powl( p.x - s.x, 2 ) + powl( p.y - s.y, 2 ) + powl( p.z - s.z, 2 );
                keep = s;
            }
        }
        printf( "(%.2lf, %.2lf, %.2lf) %.2lf\n", keep.x, keep.y, keep.z, sqrtl( closest ) );
    }

    return 0;

}                                 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值