1046.Shortest Distance

題目描述

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,10^?5?? ]), followed by N integer distances D?1?? D?2? ? D?N?? , where D?i?? is the distance between the i-th and the (i+1)-st exits, and D?N?? 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 (≤10^?4?? ), 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 10^?7?? .

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

注意點(diǎn)

一般這種短小精悍的題都會(huì)卡時(shí)限侠碧,因此不要大意缠黍,一開始就要朝著縮短時(shí)間的思路去。cin cout的耗時(shí)遠(yuǎn)遠(yuǎn)大于scanf printf替饿,因此如果有測試點(diǎn)通不過可以考慮改成scanf printf贸典,在數(shù)據(jù)量較大的情況下,可以節(jié)省至少10ms廊驼。

代碼

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int n, m, sum = 0, a, b, ans = 0, temp;
    scanf("%d", &n);
    vector<int> dis(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> temp;
        sum += temp;
        dis[i] = sum;
    }
    scanf("%d", &m);
    for (int i = 0; i < m; i++) {
        scanf("%d %d", &a, &b);
        if (a > b) swap(a, b);
        temp = dis[b - 1] - dis[a - 1];
        printf("%d\n", min(temp, sum - temp));
    }
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蝶俱,隨后出現(xiàn)的幾起案子饥漫,更是在濱河造成了極大的恐慌罗标,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彻消,死亡現(xiàn)場離奇詭異宙拉,居然都是意外死亡宾尚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門御板,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牛郑,“玉大人,你說我怎么就攤上這事淹朋。” “怎么了杈抢?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵仑性,是天一觀的道長。 經(jīng)常有香客問我虏缸,道長,這世上最難降的妖魔是什么窥岩? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任宰缤,我火速辦了婚禮,結(jié)果婚禮上慨灭,老公的妹妹穿的比我還像新娘。我一直安慰自己呻疹,他們只是感情好筹陵,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朦佩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宋彼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天输涕,我揣著相機(jī)與錄音,去河邊找鬼桃熄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瞳收,可吹牛的內(nèi)容都是我干的厢汹。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼界弧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了垢箕?” 一聲冷哼從身側(cè)響起兑巾,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帅掘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體修档,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡府框,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了癣诱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袜香。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鲫惶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吆寨,我是刑警寧澤踩寇,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站俺孙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏睛榄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一啡莉、第九天 我趴在偏房一處隱蔽的房頂上張望旨剥。 院中可真熱鬧,春花似錦轨帜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奠蹬。三九已至嗡午,卻和暖如春囤躁,著一層夾襖步出監(jiān)牢的瞬間荔睹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工宵距, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吨拗,地道東北人满哪。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓哨鸭,卻偏偏與公主長得像民宿,于是被迫代替她去往敵國和親像鸡。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容