#include using namespace std; const int N = 2e5 + 5; const long long INF = 1e18; int n, m, w, vis[N]; long long dis[N]; vector> e[N]; int main() { ios :: sync_with_stdio(false), cin.tie(0); cin >> n >> m >> w; long long sumA = 0; for (int i = 1; i <= n; i++) { int a; cin >> a; sumA += a; e[i].emplace_back(i + 1, a); e[i + 1].emplace_back(i, a); } for (int i = 1; i <= m; i++) { int l, r; cin >> l >> r; e[l].emplace_back(r + 1, w); e[r + 1].emplace_back(l, w); } fill(dis + 1, dis + 2 + n, INF); priority_queue> q; q.push({dis[1] = 0, 1}); while (!q.empty()) { int x = q.top().second; q.pop(); if (vis[x]) { continue; } vis[x] = 1; for (auto i : e[x]) { int y = i.first; long long v = dis[x] + i.second; if (v < dis[y]) { q.push({-(dis[y] = v), y}); } } } cout << sumA - dis[n + 1] << "\n"; return 0; }