Skip to content

Instantly share code, notes, and snippets.

@ShikaSD
Created October 4, 2019 16:52
Show Gist options
  • Save ShikaSD/9e5cccb2e6aafcd93e7591232ca3a33a to your computer and use it in GitHub Desktop.
Save ShikaSD/9e5cccb2e6aafcd93e7591232ca3a33a to your computer and use it in GitHub Desktop.
object Main {
private val out: PrintWriter =
PrintWriter(BufferedWriter(OutputStreamWriter(System.out, "UTF-8"), 512))
@JvmStatic
fun main(args: Array<String>) {
val bufferReader = BufferedReader(InputStreamReader(FileInputStream(File("f_big.in"))))
val stringTokenizer = StringTokenizer(bufferReader.readLine())
val nodes = HashMap<String, Node>()
val files = parseLong(stringTokenizer.nextToken())
val targets = parseLong(stringTokenizer.nextToken())
val servers = parseLong(stringTokenizer.nextToken())
for (i in 0 until files) {
val stringTokenizer = StringTokenizer(bufferReader.readLine())
val name = stringTokenizer.nextToken()
val compilation = parseLong(stringTokenizer.nextToken())
val replication = parseLong(stringTokenizer.nextToken())
val dependencies = mutableListOf<Node>()
val depsTokenizer = StringTokenizer(bufferReader.readLine())
val depNum = parseLong(depsTokenizer.nextToken())
for (j in 0 until depNum) {
val depName = depsTokenizer.nextToken()
val dependency = nodes[depName]!!
dependencies.add(dependency)
}
val node = Node(
name = name,
compilation = compilation,
replication = replication,
dependencies = dependencies
)
nodes[name] = node
}
val goals = mutableListOf<Target>()
for (i in 0 until targets) {
val stringTokenizer = StringTokenizer(bufferReader.readLine())
val name = stringTokenizer.nextToken()
val deadline = parseLong(stringTokenizer.nextToken())
val goal = parseLong(stringTokenizer.nextToken())
val target = Target(
name = name,
deadline = deadline,
goal = goal
)
goals.add(target)
}
// out.println(nodes)
// out.println(goals)
// out.println(servers)
out.flush()
}
data class Node(
val name: String?,
val compilation: Long,
val replication: Long,
val dependencies: List<Node>
)
data class Target(
val name: String,
val deadline: Long,
val goal: Long
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment