四大文化赛道完整展开
03-execution/run-002/source-snapshot/main.cpp
main.cpp
站内文件视图直接读取仓库内容,Markdown 使用文档排版渲染,其余文本文件保持原始排版,方便校对训练证据链。
文件类型.cpp
10-cases/s4-jh-01-pattern-restore/03-execution/run-002/source-snapshot/main.cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int k;
string pattern;
if (!(cin >> k >> pattern)) {
return 0;
}
vector<vector<int>> counts(k, vector<int>(26, 0));
for (int i = 0; i < static_cast<int>(pattern.size()); ++i) {
if (pattern[i] != '?') {
counts[i % k][pattern[i] - 'A']++;
}
}
vector<char> fill(k, 'A');
for (int group = 0; group < k; ++group) {
int best_count = -1;
char best_char = 'A';
for (int offset = 0; offset < 26; ++offset) {
if (counts[group][offset] > best_count) {
best_count = counts[group][offset];
best_char = static_cast<char>('A' + offset);
}
}
fill[group] = best_char;
}
int replaced = 0;
for (int i = 0; i < static_cast<int>(pattern.size()); ++i) {
if (pattern[i] == '?') {
pattern[i] = fill[i % k];
++replaced;
}
}
cout << "restored=" << pattern << "\n";
cout << "replaced=" << replaced << "\n";
return 0;
}