C++,codeforces, 339B, B. Xenia and Ringroad
/*
codeforces, 339B, B. Xenia and Ringroad
问题说明`:
有一个单向环形的道路,长度为n,有m个任务,每个任务都是在道路上的某个位置,按顺序完成这些任务,每次完成一个任务,需要花费这个任务的位置和上一个任务的位置的距离的时间,问完成所有任务需要多少时间。
输入: 第一行两个整数n,m(1<=n,m<=10^5),接下来一行m个整数,表示m个任务的位置(1<=位置<=n)
输出: 完成所有任务需要的时间
*/
#include <iostream>
int main(){
int n,m;std::cin>>n>>m;
int current = 1;
long long time = 0;
for(int i = 0;i<m;++i){
int next;std::cin>>next;
time += (next-current+n)%n;
current = next;
}
std::cout<<time<<std::endl;
}

浙公网安备 33010602011771号