codeforces278A
Circle Line
郑州地铁的圆线有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的更多相关文章
随机推荐
- B类——Stas and the Queue at the Buffet
http://codeforces.com/contest/1151/problem/D 题意: n个学生,每个学生都有自己的位置,最后要使
- GPXReader工具代码简析
完整的文件在TerraExplorer Pro的默认安装目录下C:\Program Files (x86)\Skyline\TerraExplorer Pro\Tools\GPXReader: 如果你 ...
- 10-51单片机ESP8266学习-AT指令(ESP8266连接路由器,建立TCP服务器,分别和C#TCP客户端和AndroidTCP客户端通信+花生壳远程通信)
http://www.cnblogs.com/yangfengwu/p/8871464.html 先把源码和资料链接放到这里 源码链接:https://pan.baidu.com/s/1wT8KAOI ...
- 【Linux系统目录结构】
登录系统后,在当前命令窗口下输入 ls / 你会看到 以下是对这些目录的解释: /bin bin是Binary的缩写.这个目录存放着最经常使用的命令. /boot 这里存放的是启动Linux时使用的一 ...
- Luogu3220 HNOI2012 与非 数位DP
传送门 题意:给出$N$个范围在$[0,2^k-1]$的整数,定义位运算$NAND$为位运算$AND$的逆运算,求$[L,R]$中有多少数能成为若干个前面给出的整数.若干括号和$NAND$运算组成的表 ...
- BZOJ4552 HEOI/TJOI2016 排序 线段树、二分答案
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4552 题意:给出一个$1$到$N$的全排列,对其进行$M$次排序,每次排序将区间$[l ...
- Luogu P1265 公路修建
一眼看去,就是一道MST的模板题. 然后果断准备跑Kruskal,然后5个TLE. Kruskal复杂度对于这个完全图要O(n^2*logn^2),快排就会导致超时. 然后打了刚学的Prim.朴素O( ...
- Linux性能评测工具之一:gprof篇
这些天自己试着对项目作一些压力测试和性能优化,也对用过的测试工具作一些总结,并把相关的资料作一个汇总,以便以后信手拈来! 1 简介 改进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数 ...
- pandas:解决groupby().apply()方法打印两次
对于以下dataframe执行dataframe.groupby(['name', 'course']).apply(lambda x: test(x)) 操作 其中test(x)函数为: def t ...
- 来不及说什么了,Python 运维开发剁手价仅剩最后 2 天
51reboot 运维开发又双叒叕的搞活动了—— Python 运维开发 18 天训练营课程, 剁手价1299 最后2天 上课方式:网络直播/面授(仅限北京) DAY1 - DAY4 Python3 ...