Submission #5540017


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 107;
const int INF = 1e18 + 7;
const int S = 0, T = N - 1;
int n;
int a[N];
struct Edge {
    int v, c, f;
};  
vector <int> g[N];
vector <Edge> ed;      
void add(int u, int v, int c) {
    #ifdef HOME
    cout << "edge " << u << "->" << v << " : " << c << '\n';
    #endif
    g[u].push_back(ed.size());
    ed.push_back({v, c, 0});
    g[v].push_back(ed.size());
    ed.push_back({u, 0, 0});
}   
bool used[N];
int dfs(int u, int cur) {
    used[u] = 1;
    #ifdef HOME
    cout << "dfs " << u << ' ' << cur << '\n';
    #endif
    if (u == T) return cur;
    for (int i : g[u]) {
        auto &e = ed[i];
        if (!used[e.v] && e.f < e.c) {
            int t = dfs(e.v, min(cur, e.c - e.f));
            if (t) {
                e.f += t;
                ed[i^1].f -= t;
                return t;
            }   
        }   
    }   
    #ifdef HOME
    cout << "out " << u << '\n';
    #endif
    return 0;
}   
int maxflow() {
    int ans = 0;
    while (1) {
        memset(used, 0, sizeof used);
        int t = dfs(S, INF);
        if (t) ans += t;
        else break;
    }   
    return ans;
}   
signed main() {
    #ifdef HOME
    freopen("input.txt", "r", stdin);
    #else
    ios_base::sync_with_stdio(0); cin.tie(0);
    #endif
    cin >> n;
    for (int i = 1; i <= n; ++i) cin >> a[i];
    for (int i = 1; i <= n; ++i) {
        if (a[i] > 0) {
            add(i, T, a[i]);
        }
        else {
            add(S, i, -a[i]);
        }   
    }   
    for (int i = 1; i <= n; ++i) {
        for (int j = i * 2; j <= n; j += i) {
            add(i, j, INF);
        }
    }   
    int best = 0;
    for (int i = 1; i <= n; ++i) best += max(0ll, a[i]);
    cout << best - maxflow() << '\n';
}   

Submission Info

Submission Time
Task E - MUL
User fastmath
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1880 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 4
AC × 49
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