#include<bits/stdc++.h> using namespace std; int main() { //r:生成数,a:高度数组 int n, r[110],a[110]; cin >> n >> r[1]; a[1] = r[1] % 10; for (int i = 2; i <= n; i++) { r[i] = (r[i - 1] * 6807 + 2831) % 201701; a[i] = r[i] % 10; } int left[110], right[110]; left[1] = a[1], right[n] = a[n];//初始化 //扫一遍左边高的 for (int i = 2; i <= n; i++) { left[i] = max(left[i - 1], a[i]); } //扫一遍右边高的 for (int i = n - 1; i > 0; i--) { right[i] = max(right[i + 1], a[i]); } // for(int i = 1;i <= n;i++){ // cout<<a[i]<<" "<<left[i]<<" "<<right[i]<<endl; // } int cnt = 0; for (int i = 2; i <= n; i++) { cnt += min(left[i], right[i]) - a[i]; } cout << cnt << "\n"; return 0; } /************************************************************** Problem: 1550 User: admin Language: C++ Result: Accepted Time:64 ms Memory:2072 kb ****************************************************************/