提出 #6238817
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
const int64_t INF = 1e18;
struct Dinic{
struct edge {
int64_t to, cap, rev;
edge(int64_t to, int64_t cap, int64_t rev):to(to), cap(cap), rev(rev){}
};
int N, S, T;
int64_t flow = 0;
vector<int> level, iter;
vector<vector<edge>> G;
Dinic(int N, int S, int T):N(N), S(S), T(T){
flow = 0;
level.resize(N);
iter.resize(N);
G.resize(N);
}
void add_edge(int from, int to, int64_t cap){
G[from].emplace_back(to, cap, G[to].size());
G[to].emplace_back(from, 0, G[from].size()-1);
}
void bfs(int s){
fill(level.begin(), level.end(), -1);
queue<int> que;
level[s] = 0;
que.push(s);
while(que.size()){
int v = que.front(); que.pop();
for(auto& e : G[v]){
if(e.cap > 0 && level[e.to] < 0){
level[e.to] = level[v] + 1;
que.push(e.to);
}
}
}
}
int64_t dfs(int v, int t, int64_t f){
if(v == t) return f;
for(int& i=iter[v]; i<G[v].size(); i++){
auto& e = G[v][i];
if(e.cap > 0 && level[v] < level[e.to]){
int64_t d = dfs(e.to, t, min(f, e.cap));
if(d > 0){
e.cap -= d;
G[e.to][e.rev].cap += d;
return d;
}
}
}
return 0;
}
int64_t max_flow(){
while(true){
bfs(S);
if(level[T] < 0) return flow;
fill(iter.begin(), iter.end(), 0);
while(true){
int64_t f = dfs(S, T, INF);
if(f == 0) break;
flow += f;
}
}
}
};
int main(){
int N, A[101];
cin >> N;
for(int i=1; i<=N; i++) cin >> A[i];
int S = 101, T = 102;
Dinic solver(T+1, S, T);
int64_t pre_gain = 0;
for(int i=1; i<=N; i++){
if(A[i] >= 0){
pre_gain += A[i];
solver.add_edge(S, i, 0);
solver.add_edge(i, T, A[i]);
}else{
solver.add_edge(S, i, -A[i]);
solver.add_edge(i, T, 0);
}
}
for(int i=1; i<=N; i++) for(int k=2; i*k<=N; k++){
solver.add_edge(i, k*i, INF);
}
int64_t ans = pre_gain - solver.max_flow();
cout << ans << endl;
}
提出情報
| 提出日時 |
|
| 問題 |
E - MUL |
| ユーザ |
betrue12 |
| 言語 |
C++14 (GCC 5.4.1) |
| 得点 |
700 |
| コード長 |
2549 Byte |
| 結果 |
AC |
| 実行時間 |
1 ms |
| メモリ |
256 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
700 / 700 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| example_0 |
AC |
1 ms |
256 KiB |
| example_1 |
AC |
1 ms |
256 KiB |
| example_2 |
AC |
1 ms |
256 KiB |
| example_3 |
AC |
1 ms |
256 KiB |
| kimeuti_0 |
AC |
1 ms |
256 KiB |
| kimeuti_1 |
AC |
1 ms |
256 KiB |
| kimeuti_10 |
AC |
1 ms |
256 KiB |
| kimeuti_11 |
AC |
1 ms |
256 KiB |
| kimeuti_12 |
AC |
1 ms |
256 KiB |
| kimeuti_13 |
AC |
1 ms |
256 KiB |
| kimeuti_14 |
AC |
1 ms |
256 KiB |
| kimeuti_15 |
AC |
1 ms |
256 KiB |
| kimeuti_16 |
AC |
1 ms |
256 KiB |
| kimeuti_17 |
AC |
1 ms |
256 KiB |
| kimeuti_18 |
AC |
1 ms |
256 KiB |
| kimeuti_19 |
AC |
1 ms |
256 KiB |
| kimeuti_2 |
AC |
1 ms |
256 KiB |
| kimeuti_3 |
AC |
1 ms |
256 KiB |
| kimeuti_4 |
AC |
1 ms |
256 KiB |
| kimeuti_5 |
AC |
1 ms |
256 KiB |
| kimeuti_6 |
AC |
1 ms |
256 KiB |
| kimeuti_7 |
AC |
1 ms |
256 KiB |
| kimeuti_8 |
AC |
1 ms |
256 KiB |
| kimeuti_9 |
AC |
1 ms |
256 KiB |
| rand_0 |
AC |
1 ms |
256 KiB |
| rand_1 |
AC |
1 ms |
256 KiB |
| rand_10 |
AC |
1 ms |
256 KiB |
| rand_11 |
AC |
1 ms |
256 KiB |
| rand_12 |
AC |
1 ms |
256 KiB |
| rand_13 |
AC |
1 ms |
256 KiB |
| rand_14 |
AC |
1 ms |
256 KiB |
| rand_15 |
AC |
1 ms |
256 KiB |
| rand_16 |
AC |
1 ms |
256 KiB |
| rand_17 |
AC |
1 ms |
256 KiB |
| rand_18 |
AC |
1 ms |
256 KiB |
| rand_19 |
AC |
1 ms |
256 KiB |
| rand_2 |
AC |
1 ms |
256 KiB |
| rand_3 |
AC |
1 ms |
256 KiB |
| rand_4 |
AC |
1 ms |
256 KiB |
| rand_5 |
AC |
1 ms |
256 KiB |
| rand_6 |
AC |
1 ms |
256 KiB |
| rand_7 |
AC |
1 ms |
256 KiB |
| rand_8 |
AC |
1 ms |
256 KiB |
| rand_9 |
AC |
1 ms |
256 KiB |
| small_0 |
AC |
1 ms |
256 KiB |
| small_1 |
AC |
1 ms |
256 KiB |
| small_2 |
AC |
1 ms |
256 KiB |
| small_3 |
AC |
1 ms |
256 KiB |
| small_4 |
AC |
1 ms |
256 KiB |