Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52703 xujindong 木薯与身高 C++ 通过 100 263 MS 8796 KB 886 2022-07-20 11:50:49

Tests(20/20):


#include<bits/stdc++.h> using namespace std; int n; namespace subtask1{ int a[1005]; long long ans=0; void solve(int n){ for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++){ int pos=i; for(int j=i-1;j>=1;j--)if(a[j]>a[i])pos=j; ans+=i-pos; } printf("%lld\n",ans); } } namespace subtask2{ deque<pair<int,int> >q,q1; long long ans=0; void solve(int n){ for(int i=1,a;i<=n;i++){ scanf("%d",&a); pair<int,int>temp; while(!q.empty()&&q.front().first<=a)temp=q.front(),q.pop_front(),q1.push_back(temp); q.push_back(make_pair(a,i)),ans+=i-q.front().second; while(!q1.empty())temp=q1.back(),q1.pop_back(),q.push_front(temp); } printf("%lld\n",ans); } } int main(){ scanf("%d",&n); if(n<=1000)subtask1::solve(n); else subtask2::solve(n); return 0; }


测评信息: