Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int MAX = 1e5 + 5;
- int n, k;
- long long c[MAX], totals[MAX];
- bool vis[MAX];
- int main() {
- ios::sync_with_stdio(false);
- cin >> n >> k;
- for (int i = 0; i < n; i++)
- cin >> c[i];
- long long res = 0, total = 0;
- for (int i = 0; i < n; i++) {
- total += c[i];
- res += c[i] * c[(i + 1) % n];
- }
- for (int i = 0; i < k; i++) {
- long long cap; cin >> cap;
- cap--;
- vis[cap] = true;
- total -= c[cap];
- long long cur = total;
- if (!vis[(cap + 1) % n])
- cur -= c[(cap + 1) % n];
- if (!vis[(cap > 0 ? cap - 1 : n - 1)])
- cur -= c[(cap > 0 ? cap - 1 : n - 1)];
- res += cur * c[cap];
- }
- cout << res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement