/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 1.02 MiB
#2 Wrong Answer 2ms 1.09 MiB
#3 Wrong Answer 3ms 1.02 MiB

Code

#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds; // find_by_order, order_of_key

#define endl           "\n"
#define F              first
#define S              second
#define pb             push_back
#define mp             make_pair
#define ub             upper_bound
#define lb             lower_bound
#define int            long long int
#define pii            pair <int, int>
#define vi             vector <int>
#define vpi            vector <pii>
#define vpp            vector <pair<int, pii>>
#define mii            map <int, int>
#define mpi            map <pii, int>
#define si             set <int>
#define spi            set <pii>
#define double         long double
#define cy             cout<<"YES"<<endl;
#define cn             cout<<"NO"<<endl;
#define sz(x)          ((int) x.size())
#define all(v)         v.begin(), v.end()
#define srt(v)         sort(v.begin(),v.end());
#define rsrt(v)        sort(v.rbegin(),v.rend());
#define mnv(v)         *min_element(v.begin(),v.end())
#define mxv(v)         *max_element(v.begin(),v.end())
#define que_max        priority_queue <int>
#define que_min        priority_queue <int, vi, greater<int>>
#define print1(a)      for(auto x : a) cout << x << " "; cout << endl;
#define print2(a)      for(auto x : a) cout << x.F << " " << x.S << endl;
#define print3(a,s,e)  for(int i=s; i<=e; i++) cout<< a[i] <<" "; cout << endl;
#define vin(x,n)       vi x(n); for (int i = 0; i < n; ++i){ cin>>x[i]; }
#define srtbypairsc(v) sort(v.begin(), v.end(), []( pair<int, int>& l, pair<int, int>& r) { return l.second < r.second; } );

void __print(int x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}
template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i : x) { cerr << (f++ ? "," : ""), __print(i); } cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) { cerr << ", "; } _print(v...);}
#ifndef ONLINE_JUDGE
#define bug(x...) cerr << "[" << #x << "] = ["; _print(x);
#else
#define bug(x...);
#endif

const int MOD = 1e9 + 7;
const int N = 200005;
const int M = 5000005;

vector<bool> isprime(M, true);
vi primes;
int SPF[M];

void genprimes() {
    isprime[0] = isprime[1] = false;
    for (int i = 0; i < M; i++) { SPF[i] = i; }
    for (int i = 2; i < M; i++) {
        if (isprime[i]) {
            primes.pb(i); SPF[i] = i;
            for (long long j = 1LL * i * i; j < M; j += i) { isprime[j] = false; if (SPF[j] == j) { SPF[j] = i; }}
        }
    }
}
int MEX(vector<int> &a) {
    vector<bool> f(a.size() + 1, 0);
    for (int i : a) if (i <= (int) a.size()) { f[i] = 1; }
    int mex = 0;
    while (f[mex]) { ++mex; } return mex;
}
int ceil_div(int a, int b) { return a / b + ((a ^ b) > 0 && a % b != 0);}
int gcd(int a, int b) { a = abs(a), b = abs(b);  return b ? gcd(b, a % b) : a;}
int lcm(int a, int b) { a = abs(a), b = abs(b);  return a / gcd(a, b) * b;  }
int add(int a, int b) {return ((a % MOD) + (b % MOD)) % MOD;}
int multi(int a, int b) { return ((a % MOD) * (b % MOD)) % MOD;}
int expo(int a, int b) { if (!b) { return 1; } int e = expo(a, b / 2); if (b % 2) { return multi(a, multi(e, e)); } else { return multi(e, e); }}
int INV(int a) { return expo(a, MOD - 2);}
int divide(int a, int b) {return multi(a, INV(b));}
int fact[M];
void genfact() {fact[0] = 1; for (int i = 1; i < M; i++) { fact[i] = (fact[i - 1] * i) % MOD; } }
int NCR(int n , int r) {
    if (n < r) { return 0; }
    return (((fact[n] * INV(fact[n - r])) % MOD) * INV(fact[r]) % MOD) % MOD;
}
/*-------------------------------------------------------------------------------------------------------------------------------------*/


void solve() {

    int n;
    cin >> n;

    string a, b;
    cin >> a >> b;

    string c = a;

    bool z = 0;

    for (int i = 0; i < n - 1; ++i) {
        if (a[i] == '1') {
            if (b[i] == '1') {
                continue;
            }
            else {
                a[i] = '0';
                a[i + 1] = '1';
            }
        }
        else {
            if (b[i] == '0') {
                continue;
            }
            else {
                a[i] = '1';
                a[i + 1] = '0';
            }
        }
    }

    if (a == b) {
        z = 1;
    }

    for (int i = n - 1; i > 0; i--) {

        if (c[i] == '1') {
            if (b[i] == '1') {
                continue;
            }
            else {
                c[i] = '0';
                c[i - 1] = '1';
            }
        }
        else {
            if (b[i] == '0') {
                continue;
            }
            else {
                c[i] = '1';
                c[i - 1] = '0';
            }
        }
    }

    if (c == b) {
        z = 1;
    }


    if (z) {
        cy;
    }
    else {
        cn;
    }





}
//cout<<fixed<<setprecision(6);

int32_t main() {

    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);



    clock_t z = clock();
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++) {
        //cout<<"Case "<<i<<": ";
        solve();
    }
    cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC);
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1233 B. Make Binary Strings Equal
Contest
Happy New Year 2026
Language
C++17 (G++ 13.2.0)
Submit At
2026-01-06 14:45:46
Judged At
2026-01-06 14:45:47
Judged By
Score
0
Total Time
3ms
Peak Memory
1.09 MiB