1046. Shortest Distance (20)

来源:互联网 发布:windows消息机制linux 编辑:程序博客网 时间:2024/05/22 07:49

原题

1046. Shortest Distance (20)

代码

#include <iostream>#include <cstdio>using namespace std;int main(int argc, const char * argv[]) {    int n;    setvbuf(stdin, new char[1 << 20], _IOFBF, 1 << 20);    setvbuf(stdout, new char[1 << 20], _IOFBF, 1 << 20);    scanf("%d", &n);    int *array = new int[n + 1];    array[0] = 0;    for(int i = 1; i <= n; i++){        scanf("%d", array + i);        array[i] += array[i - 1];    }    int m;    scanf("%d", &m);    for(int i = 0; i < m; i++){        int temp1, temp2;        scanf("%d%d", &temp1, &temp2);        int sum1 = 0, sum2 = 0;        if(temp1 > temp2){            sum1 = array[temp1 - 1] - array[temp2 - 1];            sum2 = array[n]- array[temp1 - 1] + array[temp2 - 1];        }        else{            sum1 = array[temp2 - 1] - array[temp1 - 1];            sum2 = array[n] - array[temp2 - 1] + array[temp1 - 1];        }        printf("%d\n", sum1 > sum2 ? sum2 : sum1);    }    delete[] array;    return 0;}
0 0
原创粉丝点击