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的更多相关文章
随机推荐
- Python写代码的时候为什么要注释?Sun因此被Oracle收购
导读: 此块分为:1.注释的重要性 2.如何正确注释 注释的重要性 在我们看代码的时候,会遇到很多看不懂得代码,特别是在做项目的时候,代码的注释以及命名习惯的重要性就有了为什么这么说呢? 因为在很多情 ...
- Ionic 图片延时加载
图片的延时加载是为了提供App的运行效率,那么是如何实现的呢?献上github: https://github.com/paveisistemas/ionic-image-lazy-load 1.下 ...
- Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus
在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很 ...
- .Net并行编程(一)-TPL之数据并行
前言 许多个人计算机和工作站都有多个CPU核心,可以同时执行多个线程.利用硬件的特性,使用并行化代码以在多个处理器之间分配工作. 应用场景 文件批量上传 并行上传单个文件.也可以把一个文件拆成几段分开 ...
- C++STL——优先队列
一.相关定义 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素.但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队.这 ...
- sql server选取第m行到第n行的元组
现在有一个表Questioin,主码是qid,要求选择第m行到第n行的元组 //方法一:效率最低 //错误:如果n<m,将选取前n条数据,如果n>=m,将选取从m+1开始的n条数据 sel ...
- Oracle系列(二): Oracle表的外键查询
在执行数据库删除操作时,外键关联是令我们最烦的一个东西,有了外键关联,就不允许随意删除数据,那么怎知道这个外键关联度的外键属于那个表? select * from user_cons_columns ...
- CAS的应用场景
国外应用(需FQ尝试): 来自CAS官网推荐的Demo http://casserver.herokuapp.com/cas/login https://casserver.herokuapp.com ...
- Appium学习笔记1_获取到APK安装包的Package以及Activity属性值
我们设置DesiredCapabilities属性值得时候需要设置"appPackage"和"appActivity",如何获取到这两个值呢? 这两个值不是随便 ...
- Oracle 使用PLSQL 导出 一个表的insert 语句
1. 使用工具 plsql . GUI的方法,如图示 2. 操作界面 3. 然后就看到了插入语句