Submission #3448225
Source Code Expand
#include <bits/stdc++.h> #define inf 200000000000 using namespace std; // 0-indexed struct Dinic { struct edge { int to; long long cap; int rev; }; vector<vector<edge>> lst; vector<int> completed; vector<int> dist; Dinic(int n = 1) { // if 1-indexed //++n; lst.resize(n); completed.resize(n); dist.resize(n); } bool add(int start, int goal, long long capacity) { lst[start].push_back( (edge){goal, capacity, (int)lst[goal].size()}); lst[goal].push_back( (edge){start, 0, (int)lst[start].size() - 1}); return 1; } // dist = time from start to now number void distbfs(int start) { fill(dist.begin(), dist.end(), -1); queue<int> bfsqu; dist[start] = 0; bfsqu.push(start); while(bfsqu.size() > 0) { int now = bfsqu.front(); bfsqu.pop(); for(int i = 0; i < lst[now].size(); ++i) { edge* nowe = &lst[now][i]; if(nowe->cap > 0 && dist[nowe->to] < 0) { dist[nowe->to] = dist[now] + 1; bfsqu.push(nowe->to); } } } } long long pathdfs(int now, int goal, long long nf) { if(now == goal) return nf; for(int& i = completed[now]; i < lst[now].size(); ++i) { edge* e = &lst[now][i]; if(e->cap > 0 && dist[now] < dist[e->to]) { long long ans = pathdfs(e->to, goal, min(nf, e->cap)); if(ans > 0) { e->cap -= ans; lst[e->to][e->rev].cap += ans; return ans; } } } return 0; } long long solve(int start, int goal) { long long ans = 0, nf = 0; while(1) { // bfs distbfs(start); // cannnot go to goal from start if(dist[goal] < 0) return ans; // reset fill(completed.begin(), completed.end(), 0); while((nf = pathdfs(start, goal, inf)) > 0) ans += nf; } return -1; } }; int n; long long a[104] = {0}; long long sum = 0; Dinic dn; int main() { cin >> n; dn = Dinic(n + 2); for(int i = 0; i < n; ++i) cin >> a[i]; for(int i = 0; i < n; ++i) { sum += max(0LL, a[i]); dn.add(0, i + 1, max(0LL, -a[i])); dn.add(i + 1, n + 1, max(0LL, a[i])); for(int j = 2; j * (i + 1) <= n; ++j) dn.add(i + 1, j * (i + 1), inf); } cout << sum - dn.solve(0, n + 1) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - MUL |
User | m_tsubasa |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 2415 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example_0, example_1, example_2, example_3 |
All | example_0, example_1, example_2, example_3, kimeuti_0, kimeuti_1, kimeuti_10, kimeuti_11, kimeuti_12, kimeuti_13, kimeuti_14, kimeuti_15, kimeuti_16, kimeuti_17, kimeuti_18, kimeuti_19, kimeuti_2, kimeuti_3, kimeuti_4, kimeuti_5, kimeuti_6, kimeuti_7, kimeuti_8, kimeuti_9, rand_0, rand_1, rand_10, rand_11, rand_12, rand_13, rand_14, rand_15, rand_16, rand_17, rand_18, rand_19, rand_2, rand_3, rand_4, rand_5, rand_6, rand_7, rand_8, rand_9, small_0, small_1, small_2, small_3, small_4 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
example_0 | AC | 1 ms | 256 KB |
example_1 | AC | 1 ms | 256 KB |
example_2 | AC | 1 ms | 256 KB |
example_3 | AC | 1 ms | 256 KB |
kimeuti_0 | AC | 1 ms | 256 KB |
kimeuti_1 | AC | 1 ms | 256 KB |
kimeuti_10 | AC | 1 ms | 256 KB |
kimeuti_11 | AC | 1 ms | 256 KB |
kimeuti_12 | AC | 1 ms | 256 KB |
kimeuti_13 | AC | 1 ms | 256 KB |
kimeuti_14 | AC | 1 ms | 256 KB |
kimeuti_15 | AC | 1 ms | 256 KB |
kimeuti_16 | AC | 1 ms | 256 KB |
kimeuti_17 | AC | 1 ms | 256 KB |
kimeuti_18 | AC | 1 ms | 256 KB |
kimeuti_19 | AC | 1 ms | 256 KB |
kimeuti_2 | AC | 1 ms | 256 KB |
kimeuti_3 | AC | 1 ms | 256 KB |
kimeuti_4 | AC | 1 ms | 256 KB |
kimeuti_5 | AC | 1 ms | 256 KB |
kimeuti_6 | AC | 1 ms | 256 KB |
kimeuti_7 | AC | 1 ms | 256 KB |
kimeuti_8 | AC | 1 ms | 256 KB |
kimeuti_9 | AC | 1 ms | 256 KB |
rand_0 | AC | 1 ms | 256 KB |
rand_1 | AC | 1 ms | 256 KB |
rand_10 | AC | 1 ms | 256 KB |
rand_11 | AC | 1 ms | 256 KB |
rand_12 | AC | 1 ms | 256 KB |
rand_13 | AC | 1 ms | 256 KB |
rand_14 | AC | 1 ms | 256 KB |
rand_15 | AC | 1 ms | 256 KB |
rand_16 | AC | 1 ms | 256 KB |
rand_17 | AC | 1 ms | 256 KB |
rand_18 | AC | 1 ms | 256 KB |
rand_19 | AC | 1 ms | 256 KB |
rand_2 | AC | 1 ms | 256 KB |
rand_3 | AC | 1 ms | 256 KB |
rand_4 | AC | 1 ms | 256 KB |
rand_5 | AC | 1 ms | 256 KB |
rand_6 | AC | 1 ms | 256 KB |
rand_7 | AC | 1 ms | 256 KB |
rand_8 | AC | 1 ms | 256 KB |
rand_9 | AC | 1 ms | 256 KB |
small_0 | AC | 1 ms | 256 KB |
small_1 | AC | 1 ms | 256 KB |
small_2 | AC | 1 ms | 256 KB |
small_3 | AC | 1 ms | 256 KB |
small_4 | AC | 1 ms | 256 KB |