1849C - Binary String Copying - CodeForces Solution


data structures hashing strings

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
const int P=998244353;
int n,m,T,cnt,ans;
string a;
int sum1[N],sum2[N],pre[N],nx[N];
set<pair<int,int>> s;
void solve(){
    cin>>n>>m;
    cin>>a;
    s.clear();
    a=" "+a;
    ans=0;
    for(int i=1;i<=n;i++){
        pre[i]=pre[i-1];
        if(a[i]=='0') pre[i]=i;
    }
    nx[n+1]=n+1;
    for(int i=n;i>=1;i--){
        nx[i]=nx[i+1];
        if(a[i]=='1') nx[i]=i;
    }
    while(m--){
        int l,r;
        cin>>l>>r;
        l=nx[l],r=pre[r];
        if(l>=r) ans=1;
        else {
            s.insert(make_pair(l,r));
        }
    }
    cout<<ans+s.size()<<"\n";
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>T;
    //T=1;
    while(T--){
        solve();
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1006A - Adjacent Replacements
1195C - Basketball Exercise
1206A - Choose Two Numbers
1438B - Valerii Against Everyone
822A - I'm bored with life
9A - Die Roll
1430B - Barrels
279B - Books
1374B - Multiply by 2 divide by 6
1093B - Letters Rearranging
1213C - Book Reading
1468C - Berpizza
1546B - AquaMoon and Stolen String
1353C - Board Moves
902A - Visiting a Friend
299B - Ksusha the Squirrel
1647D - Madoka and the Best School in Russia
1208A - XORinacci
1539B - Love Song
22B - Bargaining Table
1490B - Balanced Remainders
264A - Escape from Stones
1506A - Strange Table
456A - Laptops
855B - Marvolo Gaunt's Ring
1454A - Special Permutation
1359A - Berland Poker
459A - Pashmak and Garden
1327B - Princesses and Princes
1450F - The Struggling Contestant