Submission #338813
Source Code Expand
#include <iostream> #include <algorithm> #include <string> long long int min_nico_count = 0; long long int count_nico( const std::string& s ) { long long int total_nico_count = 0; char expected_char = '2'; long long int nico_count = 0; for ( int n = 0; n < s.size(); n++ ) { if ( s[ n ] == expected_char ) { if ( s[ n ] == '5' ) { nico_count++; } } else { total_nico_count += ( nico_count * ( nico_count + 1 ) ) / 2; nico_count = 0; } if ( s[ n ] == '2' ) { expected_char = '5'; } else { expected_char = '2'; } } total_nico_count += ( nico_count * ( nico_count + 1 ) ) / 2; nico_count = 0; // std::cout << s << " : " << total_nico_count << std::endl; return total_nico_count; } bool is_correct_password( const std::string& s ) { return count_nico( s ) >= min_nico_count; } long long int count_recursive( const std::string& s ) { std::string::size_type i = s.find( '?' ); if ( i == std::string::npos ) { return ( int ) is_correct_password( s ); } long long int count = 0; for ( int n = 0; n < 10; n++ ) { std::string s2 = s.substr( 0, i ) + static_cast< char >( '0' + n ) + s.substr( i + 1 ); count += count_recursive( s2 ); count %= 1000000007; } return count; } int main( int argc, char** argv ) { long long int length = 0; std::string s; std::cin >> length >> min_nico_count; std::cin >> s; std::cout << count_recursive( s ) << std::endl; /* long long int a = 0; long long int q_count = std::count( s.begin(), s.end(), '?' ); for ( int n = 0; n < q_count; n++ ) { a *= 10; } a %= 1000000007; */ // std::cout << q_count << " " << a << std::endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - ニコニコ文字列2 |
User | jepupu |
Language | C++ (G++ 4.6.4) |
Score | 0 |
Code Size | 1795 Byte |
Status | TLE |
Exec Time | 2035 ms |
Memory | 1008 KB |
Judge Result
Set Name | Sample | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 20 | ||||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 27 ms | 916 KB |
sample_02.txt | TLE | 2033 ms | 872 KB |
subtask1_01.txt | AC | 26 ms | 848 KB |
subtask1_02.txt | AC | 24 ms | 924 KB |
subtask1_03.txt | AC | 28 ms | 804 KB |
subtask1_04.txt | AC | 26 ms | 796 KB |
subtask1_05.txt | TLE | 2034 ms | 988 KB |
subtask1_06.txt | TLE | 2033 ms | 1000 KB |
subtask1_07.txt | TLE | 2035 ms | 996 KB |
subtask1_08.txt | TLE | 2032 ms | 1004 KB |
subtask1_09.txt | TLE | 2035 ms | 1008 KB |
subtask1_10.txt | TLE | 2034 ms | 876 KB |
subtask1_11.txt | TLE | 2032 ms | 1004 KB |
subtask1_12.txt | TLE | 2035 ms | 996 KB |
subtask1_13.txt | TLE | 2033 ms | 984 KB |
subtask1_14.txt | TLE | 2034 ms | 1000 KB |
subtask1_15.txt | TLE | 2034 ms | 996 KB |
subtask1_16.txt | TLE | 2035 ms | 996 KB |
subtask1_17.txt | TLE | 2033 ms | 1008 KB |
subtask1_18.txt | AC | 27 ms | 796 KB |
subtask1_19.txt | TLE | 2034 ms | 1000 KB |
subtask1_20.txt | TLE | 2032 ms | 1004 KB |
subtask1_21.txt | TLE | 2034 ms | 996 KB |
subtask1_22.txt | TLE | 2033 ms | 1008 KB |