提出 #31870777
ソースコード 拡げる
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
int main()
{
int n;
cin >> n;
map<int, int> m;
for (int i = 0; i < n; i++){
int a;
cin >> a;
if (m.count(a) == 0){
m.insert(make_pair(a, 1));
} else {
m[a]++;
}
}
// dp0[i] : i 番目の整数の個数
int m1 = m.size();
vector<ll> dp0(m1);
{
int i = 0;
for (auto it = m.begin(); it != m.end(); it++){
auto [x, ct] = *it;
dp0[i++] = ct;
}
}
// dp1[i] : i 番目の整数までに 1つ目を選ぶ時の選び方
vector<ll> dp1(m1);
dp1[0] = dp0[0];
for (int i = 1; i < m1; i++){
dp1[i] = dp1[i-1] + dp0[i];
}
// dp2[i] : i 番目の整数までに 2つ目を選ぶ時の選び方
vector<ll> dp2(m1);
dp2[0] = 0;
for (int i = 1; i < m1; i++){
dp2[i] = dp0[i] * dp1[i-1] + dp2[i-1];
}
// dp3[i] : i 番目の整数までに 3つ目を選ぶ時の選び方
vector<ll> dp3(m1);
dp3[0] = dp3[1] = 0;
for (int i = 2; i < m1; i++){
dp3[i] = dp0[i] * dp2[i-1] + dp3[i-1];
}
/*
for (ll x : dp0){ cout << x << " " << endl; }
cout << endl;
for (ll x : dp1){ cout << x << " " << endl; }
cout << endl;
for (ll x : dp2){ cout << x << " " << endl; }
cout << endl;
for (ll x : dp3){ cout << x << " " << endl; }
cout << endl;
*/
ll ans = dp3[m1 - 1];
cout << ans << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Distinct Trio |
| ユーザ | unnohideyuki |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 400 |
| コード長 | 1579 Byte |
| 結果 | AC |
| 実行時間 | 158 ms |
| メモリ | 18680 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| random_01.txt | AC | 32 ms | 3548 KiB |
| random_02.txt | AC | 53 ms | 3660 KiB |
| random_03.txt | AC | 2 ms | 3452 KiB |
| random_04.txt | AC | 120 ms | 12284 KiB |
| random_05.txt | AC | 3 ms | 3472 KiB |
| random_06.txt | AC | 7 ms | 3592 KiB |
| random_07.txt | AC | 2 ms | 3572 KiB |
| random_08.txt | AC | 23 ms | 5436 KiB |
| random_09.txt | AC | 3 ms | 3464 KiB |
| random_10.txt | AC | 34 ms | 3548 KiB |
| random_11.txt | AC | 3 ms | 3556 KiB |
| random_12.txt | AC | 22 ms | 5212 KiB |
| random_13.txt | AC | 2 ms | 3652 KiB |
| random_14.txt | AC | 26 ms | 3532 KiB |
| random_15.txt | AC | 3 ms | 3644 KiB |
| random_16.txt | AC | 73 ms | 9436 KiB |
| random_17.txt | AC | 158 ms | 18680 KiB |
| random_18.txt | AC | 3 ms | 3464 KiB |
| random_19.txt | AC | 53 ms | 3444 KiB |
| random_20.txt | AC | 2 ms | 3544 KiB |
| sample_01.txt | AC | 2 ms | 3456 KiB |
| sample_02.txt | AC | 2 ms | 3552 KiB |
| sample_03.txt | AC | 2 ms | 3560 KiB |