#include <bits/stdc++.h>
using namespace std;
int n, a[300010], zans, ru[300010];
vector<int>G[300010];
bool vis[300010];
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
for (int j = i+1; j <= n; j++){
if (!(a[i]%2)&&!(a[j]%3)&&a[i]/2==a[j]/3|| a[i] == a[j])
G[i].push_back(j), ru[j]++;
}
}
for (int i = 1; i <= n; i++) {
memset(vis, 0, sizeof(vis));
if (ru[i]==0) {
int ans = 0;
queue<int>q;
q.push(i);
while (!q.empty()) {
int x = q.front();
q.pop();
if (vis[x])
continue;
vis[x] = 1;
ans += a[x];
for (auto i : G[x]) {
q.push(i);
}
zans = max(ans, zans);
}
}
}
cout << zans;
return 0;
}
rt,只要调成30就可以,不用管TLE和MLE