結果
| 問題 | No.3685 ワロングアンサーやんけ! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 14:16:08 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,462 bytes |
| 記録 | |
| コンパイル時間 | 1,999 ms |
| コンパイル使用メモリ | 337,840 KB |
| 実行使用メモリ | 9,796 KB |
| 最終ジャッジ日時 | 2026-09-05 14:17:00 |
| 合計ジャッジ時間 | 5,140 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 16 WA * 16 |
ソースコード
#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){
for(char& c : r){
if(i>=k){
if(c=='?') c='W';
}
}
}
cout << r << "\n";
}else{
int i; bool a=true, w=true;
rep(i,k){
if(r[i] != 'A') a=false;
}
if(a){
for(char& c : r){
if(c == '?') c='A';
}
}
cout << r << "\n";
// if(a) -> XにWが含まれてはならない
// if(w) -> 最初のK文字が全てAであってはならない
// if(!a && !w) -> どうにもならない
}
}
}
#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