Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52873 AK2022071311 木薯与身高 C++ 通过 100 108 MS 8060 KB 771 2022-07-20 12:05:32

Tests(20/20):


#include<iostream> #include<cstdio> using namespace std; inline int read(){ int x = 0, f = 1; char ch = getchar(); while(ch < '0' && ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ x = x * 10 + ch - 48; ch = getchar(); } return x * f; } const int N = 1e6 + 10; long long n, maxn[N], ans; int main(){ n = read(), maxn[1] = read(); for(long long i = 2, t; i <= n; i++){ t = read(); long long l = 1, r = i; maxn[i] = max(t, maxn[i - 1]); while(r - l > 1){ int mid = (l + r) / 2; if(maxn[mid] > t) r = mid; else l = mid; } // cout << l << " " << r << endl; if(maxn[l] > t) ans += i - l; else ans += i - r; } printf("%lld", ans); return 0; }


测评信息: