結果
| 問題 | No.3685 ワロングアンサーやんけ! |
| コンテスト | |
| ユーザー |
sorachandu
|
| 提出日時 | 2026-09-05 15:19:39 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,167 bytes |
| 記録 | |
| コンパイル時間 | 1,859 ms |
| コンパイル使用メモリ | 339,348 KB |
| 実行使用メモリ | 9,792 KB |
| 最終ジャッジ日時 | 2026-09-05 15:20:07 |
| 合計ジャッジ時間 | 5,011 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 13 WA * 19 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
int main(){
cin.tie(nullptr)->ios::sync_with_stdio(false);
/*//------------------------
Warongであるときは情報が多い
NotWarongは情報が少ない てか確定できる情報がない?
はじめK文字がAであった場合、残り全部Aであることだけいえる
はじめK文字にWか?が含まれるなら、何も言えない
Warongについて考える
はじめK文字はAで確定する
残りにWが1つ以上含まれることもいえる
残り部分にWが既に含まれていたら、?はそのまま
含まれていなければ、どうだ ?が1つならそれがWで確定するが
?が2つ以上あればこれまた確定はしないか
ワロングアンサーやんけ!
NotWarongが甘いかも
サンプルをACとするとWarongになる場合があるんじゃないか
ありますねぇ うしろにWが含まれていればなります
よって以下が漏れてそうとわかる
- テストにWが含まれるケース -> サンプルがACになってはいけない
-> サンプルの?が1つかつ他がAなら、サンプルの?=W
*///------------------------
int T;
cin>>T;
while(T--){
string R,S;
int K;
cin>>R>>S>>K;
if(S=="Warong"){
for(int i=0;i<K;i++) R[i]='A';
array<int,2> cnt{};
for(int i=K;i<ssize(R);i++){
if(R[i]=='W') cnt[0]++;
else if(R[i]=='?') cnt[1]++;
}
if(!cnt[0] and cnt[1]==1){
for(int i=K;i<ssize(R);i++) if(R[i]=='?') R[i]='W';
}
}else{
bool a=true;
for(int i=0;i<K;i++) if(R[i]!='A') a=false;
if(a) for(int i=K;i<ssize(R);i++) R[i]='A';
bool w=false;
for(int i=K;i<ssize(R);i++) if(R[i]=='W') w=true;
int ac{},h{};
for(int i=0;i<K;i++){ if(R[i]=='A') ac++; if(R[i]=='?') h++; }
if(ac+h==K and h==1) for(int i=0;i<K;i++) if(R[i]=='?') R[i]='W';
}
cout<<R<<"\n";
}
}
sorachandu