百題計劃-6 codeforces 651 div2 E. Binary Subsequence Rotation 01序列集合劃分,2個佇列處理
阿新 • • 發佈:2020-08-22
https://codeforces.com/contest/1370/problem/E
佇列元素以末尾字元為結尾的序列就好了,這裡佇列裡的元素不重要,佇列size重要
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1000100; const int INF=(1LL<<30); int n; string s,t; bool check(string& s,string& t){ int c1s=0,c1t=0; for(int i=0;i<n;i++) c1s+=s[i]=='View Code1',c1t+=t[i]=='1'; return c1s==c1t; } int main(){ while(cin>>n>>s>>t){ if(!check(s,t)){ puts("-1");continue; } int q[2][2]; memset(q,0,sizeof(q)); int res=0; for(int i=0;i<n;i++){ if(s[i]==t[i]) continue; int c=s[i]-'0'; int tag=0; if(q[c^1][c^1]>0) q[c^1][c^1]--,tag=1; else if(q[c][c^1]>0) q[c][c^1]--,tag=2; if(tag==0) q[c][c]++; else if(tag==1) q[c^1][c]++; else q[c][c]++; } cout<<q[0][1]+q[1][0]<<endl; } return 0; }