Lonely Mountain Dungeons - Codeforces 1928D

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <algorithm> #include <cstring> #define int long long using namespace std; int c[200010],g[300010]; int magic(int n,int m) { int x = n / m,y = n % m; return (n - 1) * n / 2 - (x - 1) * x * (m - y) / 2 - x * (x + 1) * y / 2; } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while (t--) { int n,b,x; cin >> n >> b >> x; int maxn = 0; for (int i = 1;i <= n;i++) { cin >> c[i]; maxn = max(maxn,c[i]); } for (int i = 0;i <= maxn + 1;i++) { g[i] = 0; } for (int i = 1;i <= n;i++) { for (int j = 1;j <= c[i];j++) { int t = magic(c[i],j) * b; g[j] += t; if (j + 1 <= c[i]) { g[j + 1] -= t; } } } int ans = 0; for (int i = 1;i <= maxn;i++) { g[i] += g[i - 1]; ans = max(ans,g[i] - (i - 1) * x); } cout << ans << '\n'; } return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines