intmain() { cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> a[i]; s[1] = a[1]; for (int i = 2; i <= n; i ++ ) s[i] = s[i - 1] + a[i]; for (int i = 0; i < m; i ++ ) { cin >> l >> r; if (s[r] - s[l - 1] > 0) { d[l] ++ ; d[r + 1] -- ; } } for (int i = 1; i <= n; i ++ ) d[i] += d[i - 1]; int ans = 0; for (int i = 1; i <= n; i ++ ) ans += a[i] * d[i]; cout << ans; return0; }
structEdge { int a, b, w; booloperator< (const Edge &W) const { return w < W.w; } }edges[N];
int n, m, k; int p[N];
intmain() { cin >> n >> m >> k; for (int i = 1; i <= n; i ++ ) p[i] = i; for (int i = 0; i < m; i ++ ) { cin >> edges[i].a >> edges[i].b >> edges[i].w; } for (int i = 0; i < k; i ++ ) { int u; cin >> u; p[u] = 0; } sort(edges, edges + m); for (int i = 0; i <= m; i ++ ) { int a = edges[i].a, b = edges[i].b, w = edges[i].w; if ((p[a] == 0 && p[b] != 0) || (p[b] == 0 && p[a] != 0)) { cout << w; return0; } } cout << -1; return0; }
int n, m; vector<int> g[N]; int d[N]; queue<int> q; int ans;
intmain() { cin >> n >> m; for (int i = 0; i < m; i ++ ) { int a, b; cin >> a >> b; d[a] ++ ; d[b] ++ ; g[a].push_back(b); g[b].push_back(a); } for (int i = 1; i <= n; i ++ ) if (d[i] == 1) q.push(i); while (q.size()) { int t = q.front(); q.pop(); if (d[t] == 1) for (int i = 0; i < g[t].size(); i ++ ) { if (g[t][i] != 0) { int p = g[t][i]; for (int i = 0; i < g[p].size(); i ++ ) { if (g[p][i] == t) { g[p][i] = 0; d[t] = inf; d[p] -- ; if (d[p] == 1) q.push(p); break; } } break; } } } for (int i = 1; i <= n; i ++ ) { if (d[i] == 0) ans ++ ; } cout << ans;
intmain() { cin >> n >> m; for (int i = 0; i < m; i ++ ) { cin >> l >> r; d[i].first = lr[i].second - lr[i].first; } sort(d, d + m); ans = d[0]; cout << ans + 1 << endl; int k = 0; for (int i = 0; i < n; i ++ ) { cout << k << ' '; k ++ ; if (k > ans) k = 0; } return0; }