結果
| 問題 |
No.2938 Sigma Sigma Distance Distance Problem
|
| コンテスト | |
| ユーザー |
hatsuka_iwa
|
| 提出日時 | 2024-11-25 04:24:53 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 742 bytes |
| コンパイル時間 | 1,574 ms |
| コンパイル使用メモリ | 171,160 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-25 04:24:56 |
| 合計ジャッジ時間 | 3,009 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
struct dat {
int Count;
long long totDis;
dat() : Count(0), totDis(0) {}
};
int main() {
int N; cin >> N;
long long Ans = 0;
vector<int> A(N);
vector<dat> L(501), R(501);
for (int i = 0; i < N; i++) {
cin >> A.at(i);
R.at(A.at(i)).Count++;
R.at(A.at(i)).totDis += i;
}
for (int i = 0; i < N; i++) {
for (int j = 1; j < 501; j++) {
int diff = abs(A.at(i) - j);
Ans += ((long long)i * L.at(j).Count - L.at(j).totDis) * diff;
Ans += (R.at(j).totDis - (long long)i * R.at(j).Count) * diff;
}
R.at(A.at(i)).Count--;
R.at(A.at(i)).totDis -= i;
L.at(A.at(i)).Count++;
L.at(A.at(i)).totDis += i;
}
cout << Ans << endl;
}
hatsuka_iwa