#include "dna.h"
#include <bits/stdc++.h>
std::string analyse(int n, int t) {
std::string nas = "";
if( !make_test( "0" ) ){
for( int i=0 ; i<n ; i++ ) nas += '1';
return nas;
}
int l = 0, r = n+1;
while( l != r-1 ){
int m = ( l + r )/2;
// std::cerr<<m<<"\n";
std::string curr = "";
for( int i=0 ; i<m ; i++ ) curr += '0';
if( make_test( curr ) ) l = m;
else r = m;
}
for( int i=0 ; i<l ; i++ ) nas += '0';
int num = 0;
while( num <= l ){
if( make_test( nas + '1' ) ){ nas += '1'; num = 0; }
else { nas += '0'; num++; }
}
r = n+1;
while( l != r-1 ){
int m = ( l + r ) >> 1;
if( make_test( nas.substr( 0, m ) ) ) l = m;
else r = m;
}
nas = nas.substr( 0, l );
for( int i= nas.size() ; i < n ; i++ ){
if( make_test( '1' + nas ) ) nas = '1' + nas;
else nas = '0' + nas;
}
return nas;
/*
std::cerr<<" $$ "<<numT<<"\n";
//std::cerr<<" ! "<<l<<"\n";
int maxZ = l +1;
for( int i=0 ; i<l ; i++ ) nas += '0';
l = 0, r = n+1;
while( l != r-1 ){
int m = ( l + r )/2;
// std::cerr<<m<<"\n";
std::string curr = "";
for( int i=0 ; i<m ; i++ ) curr += '1';
if( make_test( curr ) ) l = m;
else r = m;
}
std::cerr<<" $$ "<<numT<<"\n";
//std::cerr<<" ! "<<l<<"\n";
int maxO = l +1;
//std::cerr<<" max 0, 1 -> "<<maxZ<<" "<<maxO<<"\n";
//std::cerr<<" ^ "<<nas<<"\n";
l = 1, r = n+1;
char add = '1';
while( l ){
l = 0, r = n - nas.size() +1;
int rr;
if( add == '1' ) rr = maxO;
else rr = maxZ;
r = std::min( r, rr );
while( l != r-1 ){
int m = ( l + r ) >> 1;
std::string curr = "";
for( int i=0 ; i<m ; i++ ) curr += add;
curr = nas + curr;
if( make_test( curr ) ) l = m;
else r = m;
}
for( int i=0 ; i<l ; i++ ) nas += add;
// std::cerr<<" ^ "<<nas<<"\n";
if( add == '1' ) add = '0';
else add = '1';
}
std::cerr<<" $ "<<numT<<"\n";
l = 1;
add = '1';
while( l ){
l = 0, r = n - nas.size() +1;
int rr;
if( add == '1' ) rr = maxO;
else rr = maxZ;
r = std::min( r, rr );
// std::cerr<<" @ "<<l<<" "<<r<<"\n";
while( l != r-1 ){
int m = ( l + r ) /2;
// std::cerr<<m<<"\n";
std::string curr = "";
for( int i=0 ; i<m ; i++ ) curr += add;
curr = curr + nas;
// std::cerr<<" & "<<curr<<"\n";
if( make_test( curr ) ) l = m;
else r = m;
}
for( int i=0 ; i<l ; i++ ) nas = add + nas;
if( add == '1' ) add = '0';
else add = '1';
}
std::cerr<<" $ "<<numT<<"\n";
*/
return nas;
}
Compilation message
grader.cpp: In function 'bool make_test(std::string)':
grader.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
14 | for (int i = 0; i < p.size(); i++) {
| ~~^~~~~~~~~~
grader.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
23 | for (int i = 1; i <= ss.size(); i++) {
| ~~^~~~~~~~~~~~
grader.cpp:28:13: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
28 | if (pr[i] == p.size()) {
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
0 ms |
300 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
0 ms |
212 KB |
Output is correct |
7 |
Correct |
0 ms |
212 KB |
Output is correct |
8 |
Correct |
0 ms |
212 KB |
Output is correct |
9 |
Correct |
0 ms |
300 KB |
Output is correct |
10 |
Correct |
0 ms |
300 KB |
Output is correct |
11 |
Correct |
0 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
212 KB |
Output is correct |
13 |
Correct |
0 ms |
212 KB |
Output is correct |
14 |
Correct |
0 ms |
340 KB |
Output is correct |
15 |
Correct |
1 ms |
304 KB |
Output is correct |
16 |
Correct |
0 ms |
212 KB |
Output is correct |
17 |
Correct |
1 ms |
212 KB |
Output is correct |
18 |
Correct |
0 ms |
212 KB |
Output is correct |
19 |
Correct |
0 ms |
300 KB |
Output is correct |
20 |
Correct |
1 ms |
212 KB |
Output is correct |
21 |
Correct |
1 ms |
212 KB |
Output is correct |
22 |
Correct |
1 ms |
212 KB |
Output is correct |
23 |
Correct |
1 ms |
300 KB |
Output is correct |
24 |
Correct |
0 ms |
300 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
300 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
296 KB |
Output is correct |
11 |
Correct |
1 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
300 KB |
Output is correct |
13 |
Correct |
1 ms |
212 KB |
Output is correct |
14 |
Correct |
1 ms |
212 KB |
Output is correct |
15 |
Correct |
0 ms |
212 KB |
Output is correct |
16 |
Correct |
1 ms |
212 KB |
Output is correct |
17 |
Correct |
1 ms |
212 KB |
Output is correct |
18 |
Correct |
1 ms |
212 KB |
Output is correct |
19 |
Correct |
1 ms |
304 KB |
Output is correct |
20 |
Correct |
1 ms |
212 KB |
Output is correct |
21 |
Correct |
1 ms |
212 KB |
Output is correct |
22 |
Correct |
1 ms |
300 KB |
Output is correct |
23 |
Correct |
1 ms |
212 KB |
Output is correct |
24 |
Correct |
1 ms |
212 KB |
Output is correct |
25 |
Correct |
0 ms |
212 KB |
Output is correct |
26 |
Correct |
1 ms |
300 KB |
Output is correct |
27 |
Correct |
1 ms |
212 KB |
Output is correct |
28 |
Correct |
1 ms |
300 KB |
Output is correct |
29 |
Correct |
1 ms |
212 KB |
Output is correct |
30 |
Correct |
1 ms |
304 KB |
Output is correct |
31 |
Correct |
1 ms |
224 KB |
Output is correct |
32 |
Correct |
1 ms |
340 KB |
Output is correct |
33 |
Correct |
1 ms |
212 KB |
Output is correct |
34 |
Correct |
1 ms |
300 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
300 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
11 |
Correct |
1 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
212 KB |
Output is correct |
13 |
Correct |
1 ms |
300 KB |
Output is correct |
14 |
Correct |
1 ms |
212 KB |
Output is correct |
15 |
Correct |
0 ms |
212 KB |
Output is correct |
16 |
Correct |
1 ms |
212 KB |
Output is correct |
17 |
Correct |
1 ms |
212 KB |
Output is correct |
18 |
Correct |
1 ms |
212 KB |
Output is correct |
19 |
Correct |
1 ms |
212 KB |
Output is correct |
20 |
Correct |
1 ms |
212 KB |
Output is correct |
21 |
Correct |
1 ms |
212 KB |
Output is correct |
22 |
Correct |
8 ms |
348 KB |
Output is correct |
23 |
Correct |
9 ms |
340 KB |
Output is correct |
24 |
Correct |
8 ms |
380 KB |
Output is correct |
25 |
Correct |
12 ms |
400 KB |
Output is correct |
26 |
Correct |
10 ms |
340 KB |
Output is correct |
27 |
Correct |
6 ms |
300 KB |
Output is correct |
28 |
Correct |
6 ms |
340 KB |
Output is correct |
29 |
Correct |
13 ms |
340 KB |
Output is correct |
30 |
Correct |
0 ms |
212 KB |
Output is correct |
31 |
Correct |
6 ms |
380 KB |
Output is correct |
32 |
Correct |
12 ms |
340 KB |
Output is correct |
33 |
Correct |
8 ms |
372 KB |
Output is correct |
34 |
Correct |
8 ms |
304 KB |
Output is correct |
35 |
Correct |
7 ms |
384 KB |
Output is correct |
36 |
Correct |
7 ms |
340 KB |
Output is correct |
37 |
Correct |
7 ms |
340 KB |
Output is correct |
38 |
Correct |
9 ms |
304 KB |
Output is correct |
39 |
Correct |
9 ms |
300 KB |
Output is correct |