题解:AT_s8pc_5_a Sushi 2

· · 题解

思路

简单模拟。

题目给定第 i 种寿司在 a_i+kT 时才能吃,那么答案即为 a_n+kT,但是我们如何求 k 呢?

思考一下,因为寿司是按顺序吃的,所以编号越靠前的寿司吃得越早,那么 k 就为 a_i>a_{i+1} 的个数,也就是逆序对的个数。

代码

#include<bits/stdc++.h>
using namespace std;
int n,t,a[101],sum;
int main(){
    cin>>n>>t;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<n;i++){
        if(a[i]>a[i+1]){
            sum++;
        }
    }
    cout<<a[n]+t*sum;
}