1046 Shortest Distance (PAT甲级)

cpp 复制代码
#include <cstdio>
#include <vector>
#include <algorithm>

int N, M, d, u, v, sum, tmp;
std::vector<int> dist;

int main(){
    scanf("%d", &N);
    sum = 0;
    dist.push_back(0);
    for(int i = 0; i < N; ++i){
        scanf("%d", &d);
        sum += d;
        dist.push_back(sum);
    }
    scanf("%d", &M);
    for(int i = 0; i < M; ++i){
        scanf("%d %d", &u, &v);
        if(u > v){
            std::swap(u, v);
        }
        tmp = dist[v - 1] - dist[u - 1];
        if(tmp * 2 > sum){
            tmp = sum - tmp;
        }
        printf("%d\n", tmp);
    }
    return 0;
}

题目如下:

The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.

Input Specification:

Each input file contains one test case. For each case, the first line contains an integer N (in 3,105), followed by N integer distances D1​ D2​ ⋯ DN​, where Di​ is the distance between the i-th and the (i+1)-st exits, and DN​ is between the N-th and the 1st exits. All the numbers in a line are separated by a space. The second line gives a positive integer M (≤104), with M lines follow, each contains a pair of exit numbers, provided that the exits are numbered from 1 to N. It is guaranteed that the total round trip distance is no more than 107.

Output Specification:

For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.

Sample Input:

复制代码
5 1 2 4 14 9
3
1 3
2 5
4 1

Sample Output:

复制代码
3
10
7
相关推荐
To_OC1 小时前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑
javascript·算法·排序算法
饼干哥哥2 小时前
Reddit VOC调研太慢?搭一个AI专家团队半小时洞察任何品类|以猫用饮水机为例
人工智能·算法·ai编程
地平线开发者3 小时前
Transformer模型部署之性能优化指南
算法
地平线开发者3 小时前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子
算法·自动驾驶
半个落月6 小时前
从递归到快速排序:用 JavaScript 把分治思想讲明白
javascript·算法·面试
小月土星7 小时前
JavaScript 快速排序:从 pivot、双指针到分治思想
javascript·算法·面试
小月土星7 小时前
JavaScript 递归入门:从 1 到 n 求和,再到数组扁平化
javascript·算法·面试
To_OC1 天前
LC 1 两数之和:面试第一道必考题,暴力解法直接被面试官 pass
javascript·算法·leetcode
鱼鱼不愚与1 天前
《原来如此 | 第01期:为什么导航软件能预测红绿灯倒计时?》
算法