結果
| 問題 | No.3685 ワロングアンサーやんけ! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 15:38:15 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,310 bytes |
| 記録 | |
| コンパイル時間 | 2,074 ms |
| コンパイル使用メモリ | 336,960 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2026-09-05 15:38:22 |
| 合計ジャッジ時間 | 4,848 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 10 WA * 22 |
ソースコード
#ifndef INCLUDED_MAIN
#define INCLUDED_MAIN
#include __FILE__
using namespace nskr;
int main(void){
int t; cin >> t;
for(;t--;){
string r,s; cin >> r >> s;
int k; cin >> k;
if(s == "Warong"){
int i=0;
int q=0;
for(char& c : r){
if(i<k) c='A';
else{
if(c=='?') q++;
if(c=='W') q+=1000;
}
i++;
}
if(q==1){
i=0;
for(char& c : r){
if(i>=k){
if(c=='?') c='W';
}
i++;
}
}
cout << r << "\n";
}else{
// if(r.size() == 1){
// cout << "A\n";
// continue;
// }
int i; bool a=true, w=false; int q=0;
rep(i,r.size()){
if(r[i] == 'W') a=false;
if(i<k && r[i] != 'A') w = true;
if(i<k && r[i] == '?') q++;
}
if(a&&w){
//?を全部Aにできるし、wにもできる
;
}else if(a){
//全部Aにできるが、前半にwを含められないので、必ずそうする
for(auto &c: r){
if(c=='?') c= 'A';
}
}else if(w){
//全部Aにはできないが、前半にwを含められるので、必ずそうする
if(q==1){
for(auto &c : r){
if(c=='?'){
c='A';
break;
}
}
}
}else{
//全部Aにできず、前半にwを含められないなら、たぶん不正な入力
while(true){
;
}
}
cout << r << "\n";
}
}
}
#else
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld= long double;
#define rep(i,n) for(i=0;i<(n);i++)
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
namespace nskr{
struct unionfind{
//unionfind - union by size, 経路圧縮
vector<int> pr, sz;
unionfind(int n){
pr.resize(n);
sz.resize(n,1);
for(int i=0;i<n;i++) pr[i] = i;
}
inline int find(int x){
while(pr[x] != x){
pr[x] = pr[pr[x]];
x = pr[x];
}
return x;
}
inline void merge(int p, int q){
p = find(p); q = find(q);
if(p==q) return ;
if(sz[p] < sz[q]) swap(p,q);
pr[q] = p;
sz[p] += sz[q];
return ;
}
inline bool same(int p, int q){
if(find(p) == find(q)) return true;
return false;
}
int size(int x){
return sz[find(x)];
}
};
}
int randint(int a, int b){
static mt19937 gen(chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<int> dist(a,b);
return dist(gen);
}
#endif