| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 126778 | Sorting | Paint By Numbers (IOI16_paint) | C++14 | 2 ms | 376 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 7;
const int K = 1e2 + 7;
pair<bool, bool> dp[N][K];
string s, ans;
vector<int> c;
int a[N], n;
bool solve(int i1, int i2){
//cout << i1 << " " << i2 << endl;
if(i1 == n){
if(i2 == c.size()){
return 1;
}
return 0;
}
if(dp[i1][i2].second){
return dp[i1][i2].first;
}
dp[i1][i2].second = true;
dp[i1][i2].first = false;
if(s[i1] == '.' || s[i1] == '_'){
bool b = solve(i1 + 1, i2);
if(b){
if(ans[i1] == '_'){
ans[i1] = '_';
}
else{
if(ans[i1] != '_'){
ans[i1] = '?';
}
}
dp[i1][i2].first = true;
}
}
if(a[i1] >= c[i2]){
bool b = solve(i1 + c[i2], i2 + 1);
if(b){
if(ans[i1] == 'X'){
ans[i1] = 'X';
}
else{
if(ans[i1] != 'X'){
ans[i1] = '?';
}
}
dp[i1][i2].first = true;
}
}
return dp[i1][i2].first;
}
string solve_puzzle(string _s, vector<int> _c){
n = _s.size();
s = _s;
for(int i = 0; i < (int)_c.size(); i++){
c.push_back(_c[i]);
}
if(s[n - 1] == 'X' || s[n - 1] == '.'){
a[n - 1] = 1;
}
else{
a[n - 1] = 0;
}
for(int i = n - 2; i >= 0; i--){
if(s[i] == 'X' || s[i] == '.'){
a[i] = a[i + 1] + 1;
}
else{
a[i] = 0;
}
}
//for(int i = 0; i < n; i++){
// cout << a[i] << " ";
//}
//cout << endl;
ans = s;
solve(0, 0);
return ans;
}
/*int main(){
string _s;
vector<int> _c;
int k;
cin >> _s;
cin >> k;
for(int i = 0; i < k; i++){
int x;
cin >> x;
_c.push_back(x);
}
cout << solve_puzzle(_s, _c) << endl;
return 0;
}*/
/*
..........
2
3 4
*/
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
