CodeChef LogoCodeChef Logo
Courses

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

PracticeCompeteCompiler
Upgrade to Pro
Courses

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

PracticeCompeteCompiler
Home  »  START181D  »  FLIPPRE  »  Submissions  »  1150946910

Flip Prefix

Status:

Time Limit Exceeded

Submission by:

2
leal_al

Submitted:

2 months ago

Problem:

FLIPPRE

Contest:

START181D
Language: C++
#include<bits/stdc++.h>
using namespace std;
string flip_prefix(const string&s,int x){
string res=s;
for(int i=0;i<x;++i){
res[i]=(res[i]=='0')?'1':'0';
}
return res;
}
int count_distinct_strings(string s){
int n=s.size();
set<string> visited;
queue<string> q;
visited.insert(s);
q.push(s);
vector<int> valid_prefixes;
int balance=0;
for(int i=0;i<n;++i){
if(s[i]=='1') balance++;
else balance--;
if(balance==0) valid_prefixes.push_back(i+1);
}
while(!q.empty()){
string cur=q.front();q.pop();
for(int x:valid_prefixes){
string next_s=flip_prefix(cur,x);
if(visited.count(next_s)==0){
visited.insert(next_s);
q.push(next_s);
}
}
}
return visited.size();
}
int main(){
int t;
cin>>t;
while(t--){
int n;
string s;
cin>>n>>s;
cout<<count_distinct_strings(s)<<'\n';
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Time Limit Exceeded
Submission ID: 1150946910
Time:1.00s
Memory:130.9M
Sub-Task Task # Result
(time)
10Correct
(0.00)
11Correct
(0.00)
12Correct
(0.00)
13Correct
(0.10)
14Correct
(0.96)
15Time Limit Exceeded
(1.00)
Subtask Score: 0% Result - Time Limit Exceeded
Total Score = 0%