제출 #677990

#제출 시각아이디문제언어결과실행 시간메모리
677990Doncho_BonbonchoMartian DNA (IOI16_dna)C++14
11 / 100
70 ms528 KiB
#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 ) >> 1;
	//	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;
	}
	
	//std::cerr<<" ! "<<l<<"\n";

	for( int i=0 ; i<l ; i++ ) nas += '0';

	//std::cerr<<" ^ "<<nas<<"\n";

	l = 1, r = n+1;
	char add = '1';
	while( l ){
		l = 0, r = n - nas.size() +1;
		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';
	}

	l = 1;
	add = '1';
	while( l ){
		l = 0, r = n - nas.size() +1;
		while( l != r-1 ){
			int m = ( l + r ) >> 1;
			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';
	}

    return nas;
}

컴파일 시 표준 에러 (stderr) 메시지

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()) {
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...