四大文化赛道完整展开
06-deliverables/appendix-code.md
民族染线备料:区间批次用量快速查询 代码附录
站内文件视图直接读取仓库内容,Markdown 使用文档排版渲染,其余文本文件保持原始排版,方便校对训练证据链。
文件类型Markdown
10-cases/s4-jh-06-dye-batch-query/06-deliverables/appendix-code.md
- 完整解题档案:complete-solution-dossier.md
Python 主实现
源文件:main.py
- 实现状态:当前已有可执行实现
import sys
def solve(data: str) -> str:
tokens = list(map(int, data.split()))
if not tokens:
return ""
it = iter(tokens)
n = next(it)
q = next(it)
values = [0] + [next(it) for _ in range(n)]
prefix = [0] * (n + 1)
for index in range(1, n + 1):
prefix[index] = prefix[index - 1] + values[index]
lines = []
best_query = 1
best_sum = -1
for query_id in range(1, q + 1):
left = next(it)
right = next(it)
total = prefix[right] - prefix[left - 1]
lines.append(f"query_{query_id}={total}")
if total > best_sum:
best_sum = total
best_query = query_id
lines.append(f"max_query={best_query}")
return "\n".join(lines)
if __name__ == "__main__":
sys.stdout.write(solve(sys.stdin.read()).strip())
sys.stdout.write("\n")
C++ 对照实现
源文件:main.cpp
- 实现状态:当前已有可执行实现
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, q;
if (!(cin >> n >> q)) {
return 0;
}
vector<long long> prefix(n + 1, 0);
for (int i = 1; i <= n; ++i) {
long long value;
cin >> value;
prefix[i] = prefix[i - 1] + value;
}
int best_query = 1;
long long best_sum = -1;
for (int query_id = 1; query_id <= q; ++query_id) {
int left, right;
cin >> left >> right;
long long total = prefix[right] - prefix[left - 1];
cout << "query_" << query_id << "=" << total << "\n";
if (total > best_sum) {
best_sum = total;
best_query = query_id;
}
}
cout << "max_query=" << best_query << "\n";
return 0;
}