QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#665392 | #5549. Game Show | kai824# | WA | 0ms | 3604kb | C++20 | 2.2kb | 2024-10-22 12:08:34 | 2024-10-22 12:08:34 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define eb emplace_back
#define pb push_back
#define mp make_pair
typedef pair<int,int> pii;
#define F first
#define S second
#define rep(i,a,b) for(int i=a;i<(b);i++)
const int MAXN = 111;
int n, m;
pair <int, string> range[MAXN];
string pre[MAXN];
string suf[MAXN];
bool checkstr(string s) {
rep(i, 0, m) if (s[i] == '?') return false;
return true;
}
int32_t main(){
ios_base::sync_with_stdio(false);cin.tie(0);
cin >> n >> m;
rep(i, 0, n) {
int x;
cin >> x;
x--;
string s;
cin >> s;
range[i] = {x, s};
}
string cur = "";
rep(i, 0, m) cur += "?";
int x, y;
rep(i, 0, n) {
bool check = false;
rep(j, range[i].F, range[i].F + range[i].S.size()) {
if (cur[j] != '?' and range[i].S[j - range[i].F] != cur[j]) check = true;
else cur[j] = range[i].S[j - range[i].F];
}
if (check) break;
pre[i] = cur;
x = i;
}
cur = "";
rep(i, 0, m) cur += "?";
for (int i = n - 1; i >= 0; i--) {
bool check = false;
rep(j, range[i].F, range[i].F + range[i].S.size()) {
if (cur[j] != '?' and range[i].S[j - range[i].F] != cur[j]) check = true;
else cur[j] = range[i].S[j - range[i].F];
}
if (check) break;
suf[i] = cur;
y = i;
}
if (x + 1 < y) {
cout << -1;
return 0;
}
if (x >= n - 2 and y <= 1) {
cout << -2;
return 0;
}
bool check = false;
string ans;
if (x >= n - 2 and checkstr(pre[n - 2])) ans = pre[n - 2], check = true;
if (y <= 1 and checkstr(suf[1])) ans = suf[1], check = true;
cout << 233;
rep(i, 1, m - 1) {
if (x < i - 1 or y > i + 1) continue;
string tmp;
bool ok = false;
rep(j, 0, m) {
if (pre[i - 1][j] == '?') tmp += suf[i + 1][j];
else if (suf[i + 1][j] == '?') tmp += pre[i - 1][j];
else if (pre[i - 1][j] != suf[i + 1][j]) ok = true;
else tmp += suf[i + 1][j];
}
if (ok == false and checkstr(tmp)) {
if (check) {
cout << -2;
return 0;
}
check = true;
ans = tmp;
}
}
cout << ans;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3604kb
input:
4 4 2 3 -4 3 1 2 7 -1 1 3 3 1 1 4 1 1
output:
233
result:
wrong answer 1st lines differ - expected: '5', found: '233'