結果
問題 | No.2046 Ans Mod? Mod Ans! |
ユーザー |
|
提出日時 | 2022-08-19 23:00:44 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 124 ms / 4,000 ms |
コード長 | 828 bytes |
コンパイル時間 | 4,388 ms |
コンパイル使用メモリ | 232,020 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-16 08:27:06 |
合計ジャッジ時間 | 5,378 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h>using namespace std;#include <atcoder/all>using namespace atcoder;using ll = long long;using vi = vector<int>;using vvi = vector<vector<int>>;using pii = pair<int, int>;#define rep(i, n) for (int i = 0; i < (int)(n); ++i)#define repr(i, n) for (int i = (int)(n - 1); i >= 0; --i)int main() {int n;cin >> n;vi a(n);rep(i, n) cin >> a[i];sort(a.begin(), a.end(), greater<int>());int L = a[0] + 1;ll ret = 0;ll s = 0;fenwick_tree<int> fw(L);rep(i, n) {ret += (ll)a[i] * i;ret -= s;for (int q = 1; a[i] * q < L; q++) {int c = fw.sum(a[i] * q, min(L, a[i] * (q + 1)));ret += (ll)a[i] * q * c;}s += a[i];fw.add(a[i], 1);}cout << ret << endl;return 0;}