Submission #5542047


Source Code Expand

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
#include <utility>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream> 
#include <random>
#include<map>
#include <iomanip>
#include <time.h>
#include <stdlib.h>
#include <list>
#include <typeinfo>
#include <list>
#include <set>
#include <cassert>
#include<fstream>
#include <unordered_map>  
using namespace std;
#define Ma_PI 3.141592653589793
#define eps 0.00000000000000000000000001
#define LONG_INF 10000000000000000LL
#define GOLD 1.61803398874989484820458
#define MAX_MOD 1000000007
#define MOD  998244353
#define REP(i,n) for(long long i = 0;i < n;++i)
long long flowing[200][200] = {};
vector<int> kouho[200];
int visited[200] = {};
int finding(long long now,long long back,long long now_max) {
	if (now == 101) {
		return now_max;
	}
	for (int i = 0; i < kouho[now].size(); ++i) {
		if (kouho[now][i] != back) {
			if (visited[kouho[now][i]] == 0&&flowing[now][kouho[now][i]] != 0) {
				visited[kouho[now][i]] = 1;
				int geko = finding(kouho[now][i], now, min(now_max, flowing[now][kouho[now][i]]));
				if (geko != 0) {
					flowing[now][kouho[now][i]] -= geko;
					flowing[kouho[now][i]][now] += geko;
					return geko;
				}
			}
		}
	}
	return 0;
}
int main() {
	int n;
	cin >> n;
	long long ans = 0;
	REP(i, n) {
		int b;
		cin >> b;
		if (b <= 0) {
			flowing[0][i + 1] = -b;
			kouho[0].push_back(i + 1);
			ans += b;
		}
		else {
			flowing[i + 1][101] = b;
			kouho[i + 1].push_back(101);
			ans += b;
		}
	}
	for (int i = 1; i <= 100; ++i) {
		for (int q = 2; i * q <= 100; ++q) {
			kouho[i].push_back(i*q);
			kouho[q * i].push_back(i);
			flowing[i][i * q] = LONG_INF;
		}
	}
	visited[0] = 1;
	while (finding(0,-1,LONG_INF)) {
		REP(i, 200) {
			visited[i] = 0;
		}
		visited[0] = 1;
	}
	for (int i = 1; i <= 101; ++i) {
		ans += flowing[0][i];
	}
	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task E - MUL
User kotamanegi
Language C++14 (Clang 3.8.0)
Score 700
Code Size 2125 Byte
Status AC
Exec Time 1 ms
Memory 384 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 384 KB
example_1 AC 1 ms 384 KB
example_2 AC 1 ms 384 KB
example_3 AC 1 ms 384 KB
kimeuti_0 AC 1 ms 384 KB
kimeuti_1 AC 1 ms 384 KB
kimeuti_10 AC 1 ms 384 KB
kimeuti_11 AC 1 ms 384 KB
kimeuti_12 AC 1 ms 384 KB
kimeuti_13 AC 1 ms 384 KB
kimeuti_14 AC 1 ms 384 KB
kimeuti_15 AC 1 ms 384 KB
kimeuti_16 AC 1 ms 384 KB
kimeuti_17 AC 1 ms 384 KB
kimeuti_18 AC 1 ms 384 KB
kimeuti_19 AC 1 ms 384 KB
kimeuti_2 AC 1 ms 384 KB
kimeuti_3 AC 1 ms 384 KB
kimeuti_4 AC 1 ms 384 KB
kimeuti_5 AC 1 ms 384 KB
kimeuti_6 AC 1 ms 384 KB
kimeuti_7 AC 1 ms 384 KB
kimeuti_8 AC 1 ms 384 KB
kimeuti_9 AC 1 ms 384 KB
rand_0 AC 1 ms 384 KB
rand_1 AC 1 ms 384 KB
rand_10 AC 1 ms 384 KB
rand_11 AC 1 ms 384 KB
rand_12 AC 1 ms 384 KB
rand_13 AC 1 ms 384 KB
rand_14 AC 1 ms 384 KB
rand_15 AC 1 ms 384 KB
rand_16 AC 1 ms 384 KB
rand_17 AC 1 ms 384 KB
rand_18 AC 1 ms 384 KB
rand_19 AC 1 ms 384 KB
rand_2 AC 1 ms 384 KB
rand_3 AC 1 ms 384 KB
rand_4 AC 1 ms 384 KB
rand_5 AC 1 ms 384 KB
rand_6 AC 1 ms 384 KB
rand_7 AC 1 ms 384 KB
rand_8 AC 1 ms 384 KB
rand_9 AC 1 ms 384 KB
small_0 AC 1 ms 384 KB
small_1 AC 1 ms 384 KB
small_2 AC 1 ms 384 KB
small_3 AC 1 ms 384 KB
small_4 AC 1 ms 384 KB