結果
| 問題 |
No.1526 Sum of Mex 2
|
| ユーザー |
square1001
|
| 提出日時 | 2021-05-31 20:16:14 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 897 bytes |
| コンパイル時間 | 748 ms |
| コンパイル使用メモリ | 78,768 KB |
| 実行使用メモリ | 10,496 KB |
| 最終ジャッジ日時 | 2024-11-08 21:32:52 |
| 合計ジャッジ時間 | 6,081 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 TLE * 1 -- * 18 |
ソースコード
#include <vector>
#include <iostream>
#include <algorithm>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
int main() {
cin.tie(0);
ios_base::sync_with_stdio(false);
int N;
cin >> N;
vector<int> A(N);
for(int i = 0; i < N; ++i) {
cin >> A[i];
--A[i];
}
vector<vector<int> > G(N);
for(int i = 0; i < N; ++i) {
G[A[i]].push_back(i);
}
vector<int> inc(N);
for(int i = 0; i < N; ++i) {
inc[i] = i;
}
long long ans = 1LL * N * (N + 1) / 2;
for(int i = 0; i < N; ++i) {
int ini = 0;
for(int j = 0; j < int(G[i].size()); ++j) {
int t = G[i][j];
for(int k = ini; k < t; ++k) {
inc[k] = max(inc[k], t);
}
ini = t + 1;
}
for(int j = ini; j < N; ++j) {
inc[j] = max(inc[j], N);
}
ans += 1LL * N * N;
for(int j = 0; j < N; ++j) {
ans -= inc[j];
}
}
cout << ans << endl;
return 0;
}
square1001