2 xzhg world xzhg_world 于 2016.09.06 21:02 提问

请教在ACM Coder上遇到的错误。

应届生一枚,在找工作,最近在acmcoder上做某公司的在线笔试碰到一个问题,在自己vs2013上未发现错误,可是提交后却显示正确率为0,想请教问题到底出在哪儿。
题目是这样子的,很简单:
就是一个人从家门口的车站(0,0)上车,车子沿着x轴正轴方向前进,速度是vb,他下车后以速度vs跑到目的地x,y。问从哪站下车时间会最短。
输入数据的格式是第一行三个数字n,vb,vx.第二行是n个公交车的站点坐标点,第三行是目标x,y。输出应该从第几站下车。
例如:
输入
4 5 2
0 2 4 6
2 1
输出
3
我的代码很简单,无非是有些情况没考虑到,实在想不明白为何会是全错:

 #include<iostream>
#include<cmath>
using namespace std;

int main()
{
    int n = 0, vb = 0, vs = 0, tmp = 0, x = 0, y = 0;
    unsigned int result = 0;
    double min_time = 0, time = 0;
    while (1)
    {
        cin >>n>> vb >> vs;
        int *station = new int[n];
        for (int i = 0; i < n; i++)
            cin >> station[i];

        cin >> x >> y;
        time = station[0] / vb + sqrt((x - station[0])*(x - station[0]) + y*y) / vs;
        min_time = time;
        for (int i = 0; i < n; i++)
        {
            time = station[i] / vb + sqrt((x - station[i])*(x - station[i]) + y*y) / vs;
            min_time = min_time < time ? min_time : time;
            if (min_time == time)   result = i + 1;
        }
        cout << result << endl;
        delete[]station;
        station = NULL;
    }
    return 0;
}

1个回答

dabocaiqq
dabocaiqq   2017.02.13 23:53
Csdn user default icon
上传中...
上传图片
插入图片