binary search constructive algorithms data structures greedy *2100

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
const int mod=1e9+7;
int n,m;
string a,b;
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);
	cin>>n>>a>>b;
	int cnt1=0,cnt2=0;
	vector<int>v;
	for(int i=0;i<n;i++){
		if(a[i]=='1')cnt1++;
		if(b[i]=='1')cnt2++;
		if(a[i]!=b[i]){
			if(a[i]=='1')v.push_back(1);
			else v.push_back(2);
		}
	}
	if(cnt1!=cnt2){
		cout<<"-1\n";
		return 0;
	}
	cnt1=cnt2=0;
	for(auto x:v){
		if(x==1)cnt1++,cnt2=max(cnt2-1,0ll);
		else cnt2++,cnt1=max(cnt1-1,0ll);
	}
	cout<<cnt1+cnt2<<'\n';
}


Comments

Submit
0 Comments
More Questions

1451A - Subtract or Divide
1B - Spreadsheet
1177A - Digits Sequence (Easy Edition)
1579A - Casimir's String Solitaire
287B - Pipeline
510A - Fox And Snake
1520B - Ordinary Numbers
1624A - Plus One on the Subset
350A - TL
1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock
205A - Little Elephant and Rozdil
1609B - William the Vigilant
978B - File Name
1426B - Symmetric Matrix
732B - Cormen --- The Best Friend Of a Man
1369A - FashionabLee
1474B - Different Divisors
1632B - Roof Construction
388A - Fox and Box Accumulation
451A - Game With Sticks
768A - Oath of the Night's Watch
156C - Cipher
545D - Queue
459B - Pashmak and Flowers
1538A - Stone Game