# Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3), problem: (F) Perishable Roads Solution In JAVA

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Div2_412F {

public static void main(String[] args) throws IOException {
PrintWriter printer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));

long[][] aMat = new long[numV][numV];
long[] mCost = new long[numV];

long oMin = Long.MAX_VALUE / 8;
for (int i = 0; i < numV – 1; i++) {

for (int j = i + 1; j < numV; j++) {
long nLong = Long.parseLong(inputData.nextToken());
aMat[i][j] = nLong;
aMat[j][i] = nLong;
if (nLong < oMin) {
oMin = nLong;
}
}
}

for (int i = 0; i < numV; i++) {
for (int j = 0; j < numV; j++) {
if (i != j) {
aMat[i][j] -= oMin;
}
}
}

for (int i = 0; i < numV; i++) {
long mEdge = Long.MAX_VALUE / 8;
for (int j = 0; j < numV; j++) {
if (i != j && aMat[i][j] < mEdge) {
mEdge = aMat[i][j];
}
}
mCost[i] = mEdge << 1;
}

boolean[] fin = new boolean[numV];
for (int i = 0; i < numV; i++) {
int cV = -1;

for (int j = 0; j < numV; j++) {
if (!fin[j] && (cV == -1 || mCost[j] < mCost[cV])) {
cV = j;
}
}

}
}
fin[cV] = true;
}

for (int i = 0; i < numV; i++) {
printer.println(mCost[i] + (numV – 1) * oMin);
}
printer.close();
}
}

(Visited 30 times, 1 visits today)
By |2017-07-24T02:40:45+00:00July 24th, 2017|Categories: Java, Programming||0 Comments