Circle Line

CodeForces - 278A

郑州地铁的圆线有n个车站。 我们知道所有邻近站点之间的距离:

d[1]是第1站和第2站之间的距离;
d[2]是第2站和第3站之间的距离;

d[n - 1]是第n-1和第n个站之间的距离;
d[n]是第n个站和第1个站之间的距离。
列车沿着两个方向的圆线。 找到具有数字s和t的站点之间的最短距离。

Input

第一行包含整数n(3≤n≤100),表示圆线上的站数。 第二行包含n个整数d[1],d[2],…,d[n](1≤d[i]≤100) 表示相邻站对之间的距离。 第三行包含两个整数s和t(1≤s,t≤n) 表示站点数量,您需要在这些站点之间找到最短距离。 这些数字可以相同。

行中的数字由单个空格分隔。

Output

打印一个数字 ,站号s和t之间最短路径的长度。

Examples

样例1

Input:
4
2 3 4 9
1 3

Output:
5

样例2

Input:
4
5 8 2 100
4 1

Output:
15

样例3

Input:
3
1 1 1
3 1

Output:
1

样例4

Input:
3
31 41 59
1 1

Output:
0

Note

在第一个样本中,路径1→2→3的长度等于5,路径1→4→3的长度等于13。

在第二个样本中,路径4→1的长度为100,路径4→3→2→1的长度为15。

在第三个样本中,路径3→1的长度为1,路径3→2→1的长度为2。

在第四个样本中,站的数量是相同的,因此最短距离等于0。

sol:这个显然是个环,用前缀和预处理两个点之间的一个方向的距离d1,总长-d1就是另一个方向的距离了

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,Qzh[N];
int main()
{
int i,S,T;
R(n);
Qzh[]=; for(i=;i<=n+;i++) Qzh[i]=Qzh[i-]+read();
R(S); R(T);
if(S>T) swap(S,T);
int tmp=Qzh[T]-Qzh[S];
Wl(min(tmp,Qzh[n+]-tmp));
return ;
}

codeforces278A的更多相关文章

随机推荐

  1. Python import用法

    官方文档说明: Python code in one module gains access to the code in another module by the process of impor ...

  2. 查看电脑本机的ip地址

    第一步:打开cmd 第二步:输入:ipconfig,回车 第三步:找到无线局域网适配器下的IPv4地址,那就是本机的ip地址

  3. MySQL(十)操纵表及全文本搜索

    一.创建表 MySQL不仅用于表数据操作,还可以用来执行数据库和表的所有操作,包括表本身的创建和处理. 创建表一般有如下两种方式: ①使用具有交互式创建和管理表的工具: ②直接使用MySQL语句操纵表 ...

  4. java算法----排序----(6)希尔排序(最小增量排序)

    package log; public class Test4 { /** * java算法---希尔排序(最小增量排序) * * @param args */ public static void ...

  5. odoo系统中name_search和name_get用法

    自动带出工序和工序序号,两个条件都能搜索,并且两个都带出来显示在前端: # 输入工序序号会自动带出工序名// def name_search(self, cr,user,name='', args=N ...

  6. c#中的多线程异常 (转载)

    1.对于Thread操作的异常处理 public static void Main() { try { Thread th = new Thread(DoWork); th.Start(); } ca ...

  7. Hive 实现 wordcount

    创建表: create table hive_wordcount(context string); load data local inpath '/home/hadoop/files/hellowo ...

  8. 如何下载google play商店里面的app?

    如何不FQ的下载这国际版的app呢? 方法如下: https://androidappsapk.co/category/apps/ 你可以直接登入这个网站,下载你所需要的国际版的软件. 就像是踏入一个 ...

  9. LOJ550 Matching 构造

    传送门 题意:$T$组询问,每组询问给出一个$N \times M$的网格和一个$K$,每一次你可以消除网格中的两个块,如果两个块的曼哈顿距离小于$K$,则不会得到分数,否则得到等同于它们曼哈顿距离的 ...

  10. 【转】Oracle virtual column(虚拟列)

    为什么要使用虚拟列 (1)可以为虚拟列创建索引(Oracle为其创建function index) (2)可以搜集虚拟列的统计信息statistics,为CBO提供一定的采样分析. (3)可以在whe ...