World Robot Contest2025-2026Algorithm Application ThemeJunior Highwrc.hao.work
WRC
Contest Archive / Structured Dossiers青少年算法应用训练档案馆

把训练题、知识点、执行证据和最终解题档案统一归档成可直接浏览的竞赛资料库。

Archive30 Cases

四大文化赛道完整展开

AccessHTTPS

完整题面 / 题解 / 运行证据

No Rounded CornersTailwind FirstDossier Ready
06-deliverables/appendix-code.md

民族展演排期:单舞台节目场次最大化 代码附录

站内文件视图直接读取仓库内容,Markdown 使用文档排版渲染,其余文本文件保持原始排版,方便校对训练证据链。

文件类型Markdown

10-cases/s4-jh-05-stage-schedule/06-deliverables/appendix-code.md

Python 主实现

源文件:main.py

  • 实现状态:当前已有可执行实现
import sys


def solve(data: str) -> str:
    tokens = data.split()
    if not tokens:
        return ""
    it = iter(tokens)
    n = int(next(it))
    shows = []
    for order in range(n):
        name = next(it)
        start = int(next(it))
        end = int(next(it))
        shows.append((end, start, order, name))
    shows.sort()
    selected = []
    last_end = -1
    for end, start, _, name in shows:
        if start >= last_end:
            selected.append(name)
            last_end = end
    line = ",".join(selected) if selected else "NONE"
    return f"selected={len(selected)}\nshows={line}"


if __name__ == "__main__":
    sys.stdout.write(solve(sys.stdin.read()).strip())
    sys.stdout.write("\n")

C++ 对照实现

源文件:main.cpp

  • 实现状态:当前已有可执行实现
#include <algorithm>
#include <iostream>
#include <string>
#include <tuple>
#include <vector>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    if (!(cin >> n)) {
        return 0;
    }
    vector<tuple<int, int, int, string>> shows;
    for (int order = 0; order < n; ++order) {
        string name;
        int start, end;
        cin >> name >> start >> end;
        shows.push_back({end, start, order, name});
    }
    sort(shows.begin(), shows.end());
    vector<string> selected;
    int last_end = -1;
    for (const auto& show : shows) {
        int end = get<0>(show);
        int start = get<1>(show);
        const string& name = get<3>(show);
        if (start >= last_end) {
            selected.push_back(name);
            last_end = end;
        }
    }
    cout << "selected=" << selected.size() << "\n";
    cout << "shows=";
    if (selected.empty()) {
        cout << "NONE";
    } else {
        for (size_t i = 0; i < selected.size(); ++i) {
            if (i) {
                cout << ',';
            }
            cout << selected[i];
        }
    }
    cout << "\n";
    return 0;
}