tuack 配置文件转 uoj 配置文件

#!/bin/env python3
from tuack import base
from os import system
base.init()
name = "printer"
def lndata(src, dst):
    system(f"ln -snf {src}.in {dst}.in")
    system(f"ln -snf {src}.ans {dst}.out")
system(f"cp statements/ccc/{name}.md uoj/statement.md")
system(f"cp solution/zh-cn.md uoj/solution.md")
system(f"cp yuki/std.cpp uoj/std.cpp")
with open("uoj/problem.conf", "w") as __import__("sys").stdout:
    n_tests = 0
    for datum in base.conf["data"]:
        n_tests += len(datum["cases"])
    n_ex_tests = 0
    cnt = 0
    for datum in base.conf["samples"]:
        n_ex_tests += len(datum["cases"])
        for i in datum["cases"]:
            cnt += 1
            lndata(f"../down/{i}", f"uoj/ex_{name}{cnt}")
    print(f"n_tests {n_tests}")
    print(f"n_ex_tests {n_ex_tests}")
    print(f"n_sample_tests {n_ex_tests}")
    print(f"input_pre {name}")
    print(f"input_suf in")
    print(f"output_pre {name}")
    print(f"output_suf out")
    print(f"time_limit {2}") # manual
    print(f"memory_limit {512}") # manual
    print(f"output_limit 64")
    print(f"use_builtin_judger on")
    print(f"use_builtin_checker ncmp")
    print( "n_subtasks {}".format(len(base.conf["data"])))
    cnt = 0
    subid = 0
    for datum in base.conf["data"]:
        for i in datum["cases"]:
            cnt += 1
            lndata(f"../data/{i}", f"uoj/{name}{cnt}")
        subid += 1
        print(f"subtask_end_{subid} {cnt}")
        print(f"subtask_score_{subid} {datum['score']}")
posted @ 2025-01-08 21:33  caijianhong  阅读(34)  评论(0)    收藏  举报