#include <bits/stdc++.h>
#include "paint.h"
#include <cstdlib>
typedef long long int ll ;
#define sc(n) scanf("%d" , &n);
#define scl(n) scanf("%lld" , &n);
#define pi(n) printf("%d" , n);
#define pil(n) printf("%lld" , n);
#define pn() printf("\n");
#define mp(a,b) make_pair(a,b)
#define pb push_back
#define rep(i,a,n) for( int i = a ; i < n ; i++ )
#define rev(i , n) for( int i = n ; i >= 0 ; i--)
#define s second
#define f first
using namespace std;
const int N = 107;
int pref[N];
bool checkzero(int l,int r){
int x = pref[r];
if(l) x-=pref[l-1];
return x == 0;
}
bool check(string s,vector<int> c,int k){
int l = 0;
for(int i = 0;i<c.size();i++){
if(l>=s.length()) return false;
if(l+c[i]-1<k && checkzero(l,l+c[i]-1)){
l+=c[i]+1;
continue;
}
if(l == k) {
l++;
i--;
continue;
}
if(l>k && l+c[i]-1<s.length() && checkzero(l,l+c[i]-1)){
l+=c[i]+1;
continue;
}
if(s[l] == '_' || s[l] == '.') {
l++;
i--;
continue;
}
return false;
}
return true;
}
bool check2(string s,vector<int> c,int j,int k){
int l = 0;
for(int i = 0;i<j;i++) {
if(l>=s.length()) return false;
if(l+c[i]-1<k-1 && checkzero(l,l+c[i]-1)){
l+=c[i]+1;
continue;
}
else {
l++;
i--;
}
return false;
}
l = k+c[j]+1;
for(int i = j+1;i<c.size();i++){
if(l>=s.length()) return false;
if(l+c[i]-1<s.length() && checkzero(l,l+c[i]-1)){
l+=c[i]+1;
continue;
}
else{
l++;
i--;
}
return false;
}
return true;
}
std::string solve_puzzle(std::string s, std::vector<int> c) {
pref[0] = s[0] == '_';
for(int i = 1;i<s.length();i++) pref[i] = pref[i-1]+(s[i] == '_');
string ans;
for(int i = 0;i<s.length();i++){
if(s[i] == '.') ans+="?";
else ans+=s[i];
}
for(int i = 0;i<s.length();i++){
if(s[i]!='.') continue;
int l = i;
int r = s.length()-i-1;
bool f = true;
bool a,b;
a = b = false;
/*if(i == 10){
cout<<0<<endl;
}*/
a = check(s,c,i);
for(int j = 0;j<c.size();j++){
for(int q = 0;q<s.length();q++){
int u = q+c[j]-1;
if(u<s.length() && q<=i && u>=i && checkzero(q,u)){
l = q;
r = s.length()-u-1;
b = check2(s,c,j,q);
if(b){
break;
}
}
}
if(b) break;
}
if(a && !b) ans[i] = '_';
if(!a && b) ans[i] = 'X';
}
return ans;
}
Compilation message
paint.cpp: In function 'bool check(std::__cxx11::string, std::vector<int>, int)':
paint.cpp:26:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i<c.size();i++){
^
paint.cpp:27:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(l>=s.length()) return false;
^
paint.cpp:37:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(l>k && l+c[i]-1<s.length() && checkzero(l,l+c[i]-1)){
^
paint.cpp: In function 'bool check2(std::__cxx11::string, std::vector<int>, int, int)':
paint.cpp:53:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(l>=s.length()) return false;
^
paint.cpp:65:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = j+1;i<c.size();i++){
^
paint.cpp:66:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(l>=s.length()) return false;
^
paint.cpp:67:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(l+c[i]-1<s.length() && checkzero(l,l+c[i]-1)){
^
paint.cpp: In function 'std::__cxx11::string solve_puzzle(std::__cxx11::string, std::vector<int>)':
paint.cpp:81:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 1;i<s.length();i++) pref[i] = pref[i-1]+(s[i] == '_');
^
paint.cpp:83:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i<s.length();i++){
^
paint.cpp:87:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i<s.length();i++){
^
paint.cpp:98:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j<c.size();j++){
^
paint.cpp:99:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int q = 0;q<s.length();q++){
^
paint.cpp:101:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(u<s.length() && q<=i && u>=i && checkzero(q,u)){
^
paint.cpp:89:13: warning: variable 'l' set but not used [-Wunused-but-set-variable]
int l = i;
^
paint.cpp:90:13: warning: variable 'r' set but not used [-Wunused-but-set-variable]
int r = s.length()-i-1;
^
paint.cpp:15:11: warning: unused variable 'first' [-Wunused-variable]
#define f first
^
paint.cpp:91:14: note: in expansion of macro 'f'
bool f = true;
^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
20 |
Correct |
2 ms |
756 KB |
n = 100, m = 5 |
21 |
Correct |
2 ms |
756 KB |
n = 90, m = 3 |
22 |
Correct |
2 ms |
756 KB |
n = 86, m = 2 |
23 |
Correct |
2 ms |
756 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
768 KB |
n = 89, m = 10 |
25 |
Correct |
2 ms |
768 KB |
n = 81, m = 23 |
26 |
Correct |
2 ms |
768 KB |
n = 86, m = 8 |
27 |
Correct |
2 ms |
768 KB |
n = 53, m = 22 |
28 |
Correct |
3 ms |
828 KB |
n = 89, m = 35 |
29 |
Correct |
2 ms |
828 KB |
n = 63, m = 25 |
30 |
Correct |
3 ms |
828 KB |
n = 100, m = 50 |
31 |
Correct |
3 ms |
840 KB |
n = 99, m = 50 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
20 |
Correct |
2 ms |
756 KB |
n = 100, m = 5 |
21 |
Correct |
2 ms |
756 KB |
n = 90, m = 3 |
22 |
Correct |
2 ms |
756 KB |
n = 86, m = 2 |
23 |
Correct |
2 ms |
756 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
768 KB |
n = 89, m = 10 |
25 |
Correct |
2 ms |
768 KB |
n = 81, m = 23 |
26 |
Correct |
2 ms |
768 KB |
n = 86, m = 8 |
27 |
Correct |
2 ms |
768 KB |
n = 53, m = 22 |
28 |
Correct |
3 ms |
828 KB |
n = 89, m = 35 |
29 |
Correct |
2 ms |
828 KB |
n = 63, m = 25 |
30 |
Correct |
3 ms |
828 KB |
n = 100, m = 50 |
31 |
Correct |
3 ms |
840 KB |
n = 99, m = 50 |
32 |
Incorrect |
2 ms |
840 KB |
char #0 differ - expected: '?', found: '_' |
33 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
20 |
Correct |
2 ms |
756 KB |
n = 100, m = 5 |
21 |
Correct |
2 ms |
756 KB |
n = 90, m = 3 |
22 |
Correct |
2 ms |
756 KB |
n = 86, m = 2 |
23 |
Correct |
2 ms |
756 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
768 KB |
n = 89, m = 10 |
25 |
Correct |
2 ms |
768 KB |
n = 81, m = 23 |
26 |
Correct |
2 ms |
768 KB |
n = 86, m = 8 |
27 |
Correct |
2 ms |
768 KB |
n = 53, m = 22 |
28 |
Correct |
3 ms |
828 KB |
n = 89, m = 35 |
29 |
Correct |
2 ms |
828 KB |
n = 63, m = 25 |
30 |
Correct |
3 ms |
828 KB |
n = 100, m = 50 |
31 |
Correct |
3 ms |
840 KB |
n = 99, m = 50 |
32 |
Incorrect |
2 ms |
840 KB |
char #0 differ - expected: '?', found: '_' |
33 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
20 |
Correct |
2 ms |
756 KB |
n = 100, m = 5 |
21 |
Correct |
2 ms |
756 KB |
n = 90, m = 3 |
22 |
Correct |
2 ms |
756 KB |
n = 86, m = 2 |
23 |
Correct |
2 ms |
756 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
768 KB |
n = 89, m = 10 |
25 |
Correct |
2 ms |
768 KB |
n = 81, m = 23 |
26 |
Correct |
2 ms |
768 KB |
n = 86, m = 8 |
27 |
Correct |
2 ms |
768 KB |
n = 53, m = 22 |
28 |
Correct |
3 ms |
828 KB |
n = 89, m = 35 |
29 |
Correct |
2 ms |
828 KB |
n = 63, m = 25 |
30 |
Correct |
3 ms |
828 KB |
n = 100, m = 50 |
31 |
Correct |
3 ms |
840 KB |
n = 99, m = 50 |
32 |
Incorrect |
2 ms |
840 KB |
char #0 differ - expected: '?', found: '_' |
33 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
248 KB |
n = 13, m = 1 |
2 |
Correct |
2 ms |
356 KB |
n = 18, m = 1 |
3 |
Correct |
2 ms |
464 KB |
n = 17, m = 1 |
4 |
Correct |
2 ms |
484 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
576 KB |
n = 20, m = 1 |
6 |
Correct |
2 ms |
744 KB |
n = 20, m = 1 |
7 |
Correct |
2 ms |
756 KB |
n = 20, m = 1 |
8 |
Correct |
2 ms |
756 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
756 KB |
n = 18, m = 3 |
10 |
Correct |
2 ms |
756 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
756 KB |
n = 20, m = 2 |
12 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
756 KB |
n = 17, m = 6 |
14 |
Correct |
2 ms |
756 KB |
n = 17, m = 1 |
15 |
Correct |
2 ms |
756 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
756 KB |
n = 13, m = 3 |
17 |
Correct |
2 ms |
756 KB |
n = 18, m = 4 |
18 |
Correct |
2 ms |
756 KB |
n = 20, m = 10 |
19 |
Correct |
2 ms |
756 KB |
n = 19, m = 10 |
20 |
Correct |
2 ms |
756 KB |
n = 100, m = 5 |
21 |
Correct |
2 ms |
756 KB |
n = 90, m = 3 |
22 |
Correct |
2 ms |
756 KB |
n = 86, m = 2 |
23 |
Correct |
2 ms |
756 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
768 KB |
n = 89, m = 10 |
25 |
Correct |
2 ms |
768 KB |
n = 81, m = 23 |
26 |
Correct |
2 ms |
768 KB |
n = 86, m = 8 |
27 |
Correct |
2 ms |
768 KB |
n = 53, m = 22 |
28 |
Correct |
3 ms |
828 KB |
n = 89, m = 35 |
29 |
Correct |
2 ms |
828 KB |
n = 63, m = 25 |
30 |
Correct |
3 ms |
828 KB |
n = 100, m = 50 |
31 |
Correct |
3 ms |
840 KB |
n = 99, m = 50 |
32 |
Incorrect |
2 ms |
840 KB |
char #0 differ - expected: '?', found: '_' |
33 |
Halted |
0 ms |
0 KB |
- |