Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
60434 | 007yingziyu | J3 | C++ | 解答错误 | 50 | 241 MS | 37364 KB | 603 | 2022-10-15 11:34:41 |
#include<bits/stdc++.h> using namespace std; long long n; map<int,int> mp; unsigned long long ans; int cnt; long long c; int mod=1000000007; int a[500005]; long long flag[500005]; int flg[500005]; int main() { ios::sync_with_stdio(false); cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; mp[a[i]]=cnt++;ans+=a[i]*(i*(n-i+1)); } for(int i=1;i<=n;i++) { int k=mp[a[i]]; if(flag[k]) { c=flag[k]; ans-=a[i]*c*(n-i+1); flag[k]+=i-flg[k]; flg[k]=i; } else { flag[k]+=i-flg[k]; flg[k]=i; } } ans%=mod; cout<<ans<<endl; return 0; }