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;
}
posted @ 2025-03-07 20:07  Kazuma_124  阅读(13)  评论(0)    收藏  举报