Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
60427 | 陈柏诚 | J3 | C++ | 运行超时 | 0 | 2016 MS | 117924 KB | 793 | 2022-10-15 11:32:40 |
#include<bits/stdc++.h> #define N 500001 using namespace std; const int mod = 1e9+7; long long ans; long long n, a[N]; long long sum[N], lst[N], pos[N]; bool vis[100000001]; int main() { cin.tie(0), cout.tie(0); cin >> n; for(int i=1;i<=n;i++) { cin >> a[i]; if(!vis[a[i]]) { lst[i] = pos[a[i]]; pos[a[i]] = i; sum[i]=sum[i-1]+a[i]; } if(vis[a[i]]) { pos[a[i]] = i; sum[i]=sum[i-1]; } vis[a[i]]=1; } memset(vis, 0, sizeof(vis)); for(int j=1;j<=n;j++) { for(int i=j;i<=n;i++) { if(!vis[a[i]]) { sum[i] = sum[i-1] + a[i]; vis[a[i]] = 1; } else sum[i] = sum[i-1]; ans = (ans + sum[i]) % mod; } memset(vis, 0, sizeof(vis)); memset(sum, 0, sizeof(sum)); } cout << ans % mod << endl; return 0; }