Sum of difference Easy
問題
074 – Sum of difference Easy
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2021/1/28 解法わからず。
解法
- \(A[i]\) が使われている個数は \(0 – N + 2 \times (i+1)-1\) 個になる。
コード例
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using P = pair<int, int>; #define rep(i, n) for(int i = 0; i < (n); ++i) // using mint = modint998244353; // using mint = modint1000000007; // const int mod = 1000000007; // const ll INF = 1LL << 62; // const int INF = 1001001001; /** * * 1, 3, 5 * ------------ * 3 - 1 * 5 - 1 * 5 - 3 * * 0 - 3 + 2 - 1 = -2個 * 0 - 3 + 4 - 1 = 0個 * 0 - 3 + 6 - 1 = 2個 */ int main() { int N; cin >> N; vector<ll> A(N); rep(i, N) { cin >> A[i]; } ll ans = 0; rep(i, N) { ll cnt = (ll)0 - N + 2 * (i + 1) - 1; ans += A[i] * cnt; } cout << ans << endl; return 0; }