可达鸭学习平台题库——思维题库第63题完成任务

完成任务

时间限制:1秒        内存限制:128M

题目描述
地图是一个圆环,在这个环上有n个任务点,每个任务点上可以完成不同的任务。地图起点为1号点,其余点按照顺时针顺序排列。完成任务时,也必须按照顺时针顺序去完成任务。每个任务点只能完成对应编号的任务,每经过一个任务点会消耗1个单位时间。请你计算一下完成任务需要多久。
输入描述
第一行输入为两个整数n和m,2≤n≤10^​5​​,1≤m≤10^​5​​,第二行输入m个整数,表示需要完成的任务。
注意:任务需要按照顺序完成。
数据保证合法!
输出描述
打印需要的时间,注意:时间可能比较大。
输入样例1

4 3
3 2 3

输出样例1

6

输入样例2

4 3
2 3 3

输出样例2

2

提示
样例1中完成任务的顺序如下:1 → 2 → 3 → 4 → 1 → 2 → 3

话不多说,上AC 代码

#include 
using namespace std;
int main() {long long n,m,a[100005] = {0};a[0] = 1;cin >> n >> m;long long cnt=0;for(int i = 1; i <= m; i ++) {cin >> a[i];if(a[i] > a[i-1]) {cnt += a[i] - a[i-1];} else if(a[i]==a[i-1]) {cnt += 0;} else {cnt = cnt + (n - a[i-1]) + a[i];}}cout << cnt;return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部