Submission #1546483


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i = a; i < (b); ++i)
#define rrep(i,a,b) for(int i = b; i --> (a);)
#define all(v) v.begin(),v.end()
#define trav(x,v) for(auto &x : v)
#define sz(v) (int)(v).size()
typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pii;

const ll md = 998244353;

const int mx = 50000;

ll mpow(ll a, ll e){
	ll res = 1;
	do {
		if(e&1) res = res * a % md;
		a = a * a % md;
	} while(e /= 2);
	return res;
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	vector<ll> fs(mx,1);
	rep(i,1,mx) fs[i] = i*fs[i-1] % md;
	vector<ll> ifs(mx);
	rep(i,0,mx) ifs[i] = mpow(fs[i], md-2);

	auto bin = [&](int n, int k){
		return fs[n] * ifs[k] % md * ifs[n-k] % md;
	};

	string a,b;
	cin >> a >> b;
	int same = 0, dif = 0, n = sz(a);
	rep(i,0,n){
		if(a[i]=='1' && b[i]=='1') ++same;
	}
	dif = count(all(a), '1') - same;

	vector<vi> dp(same+1, vi(dif+1));
	dp[0][0] = 1;
	rep(i,1,same+1) dp[i][0] = 0;
	rep(d,1,dif+1) dp[0][d] = dp[0][d-1]*ll(d)*d%md;
	rep(i,1,same+1) rep(d,1,dif+1)
		dp[i][d] = d*(ll(d)*dp[i][d-1] + ll(i)*dp[i-1][d])%md;
	ll ans = 0;
	rep(i,0,same+1){
		ll cur = 1;
		cur *= bin(same, i);
		cur %= md;
		cur *= fs[same-i]*fs[same-i]%md;
		cur %= md;
		cur *= bin(dif + same, same-i);
		cur %= md;
		cur *= dp[i][dif];
		cur %= md;
		ans += cur;
	}
	ans %= md;
	if(ans < 0) ans += md;
	cout << ans << endl;
}

Submission Info

Submission Time
Task E - Shuffle and Swap
User aitch
Language C++14 (GCC 5.4.1)
Score 1700
Code Size 1471 Byte
Status AC
Exec Time 122 ms
Memory 50176 KB

Judge Result

Set Name Sample Partial All
Score / Max Score 0 / 0 1200 / 1200 500 / 500
Status
AC × 4
AC × 46
AC × 88
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Partial sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_2_01.txt, subtask_2_02.txt, subtask_2_03.txt, subtask_2_04.txt, subtask_2_05.txt, subtask_2_06.txt, subtask_2_07.txt, subtask_2_08.txt, subtask_2_09.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_28.txt, subtask_2_29.txt, subtask_2_30.txt, subtask_2_31.txt, subtask_2_32.txt, subtask_2_33.txt, subtask_2_34.txt, subtask_2_35.txt, subtask_2_36.txt, subtask_2_37.txt, subtask_2_38.txt
Case Name Status Exec Time Memory
sample_01.txt AC 10 ms 1024 KB
sample_02.txt AC 10 ms 1024 KB
sample_03.txt AC 9 ms 1024 KB
sample_04.txt AC 10 ms 1024 KB
subtask_1_01.txt AC 10 ms 1024 KB
subtask_1_02.txt AC 10 ms 1024 KB
subtask_1_03.txt AC 10 ms 1024 KB
subtask_1_04.txt AC 10 ms 1024 KB
subtask_1_05.txt AC 10 ms 1024 KB
subtask_1_06.txt AC 10 ms 1024 KB
subtask_1_07.txt AC 10 ms 1024 KB
subtask_1_08.txt AC 10 ms 1024 KB
subtask_1_09.txt AC 10 ms 1024 KB
subtask_1_10.txt AC 10 ms 1024 KB
subtask_1_11.txt AC 10 ms 1024 KB
subtask_1_12.txt AC 10 ms 1024 KB
subtask_1_13.txt AC 10 ms 1024 KB
subtask_1_14.txt AC 10 ms 1024 KB
subtask_1_15.txt AC 10 ms 1024 KB
subtask_1_16.txt AC 10 ms 1024 KB
subtask_1_17.txt AC 10 ms 1152 KB
subtask_1_18.txt AC 10 ms 1152 KB
subtask_1_19.txt AC 10 ms 1152 KB
subtask_1_20.txt AC 10 ms 1152 KB
subtask_1_21.txt AC 10 ms 1152 KB
subtask_1_22.txt AC 10 ms 1152 KB
subtask_1_23.txt AC 10 ms 1152 KB
subtask_1_24.txt AC 10 ms 1024 KB
subtask_1_25.txt AC 10 ms 1024 KB
subtask_1_26.txt AC 10 ms 1024 KB
subtask_1_27.txt AC 10 ms 1152 KB
subtask_1_28.txt AC 10 ms 1152 KB
subtask_1_29.txt AC 10 ms 1152 KB
subtask_1_30.txt AC 10 ms 1152 KB
subtask_1_31.txt AC 10 ms 1152 KB
subtask_1_32.txt AC 10 ms 1152 KB
subtask_1_33.txt AC 10 ms 1024 KB
subtask_1_34.txt AC 10 ms 1152 KB
subtask_1_35.txt AC 10 ms 1152 KB
subtask_1_36.txt AC 10 ms 1152 KB
subtask_1_37.txt AC 10 ms 1152 KB
subtask_1_38.txt AC 10 ms 1152 KB
subtask_1_39.txt AC 10 ms 1152 KB
subtask_1_40.txt AC 10 ms 1152 KB
subtask_1_41.txt AC 10 ms 1152 KB
subtask_1_42.txt AC 10 ms 1152 KB
subtask_2_01.txt AC 10 ms 1024 KB
subtask_2_02.txt AC 10 ms 1024 KB
subtask_2_03.txt AC 11 ms 1664 KB
subtask_2_04.txt AC 93 ms 37376 KB
subtask_2_05.txt AC 85 ms 33920 KB
subtask_2_06.txt AC 10 ms 1664 KB
subtask_2_07.txt AC 10 ms 1664 KB
subtask_2_08.txt AC 10 ms 1664 KB
subtask_2_09.txt AC 14 ms 3200 KB
subtask_2_10.txt AC 110 ms 44800 KB
subtask_2_11.txt AC 110 ms 44544 KB
subtask_2_12.txt AC 110 ms 44800 KB
subtask_2_13.txt AC 122 ms 50176 KB
subtask_2_14.txt AC 122 ms 50176 KB
subtask_2_15.txt AC 122 ms 50176 KB
subtask_2_16.txt AC 109 ms 44672 KB
subtask_2_17.txt AC 110 ms 44800 KB
subtask_2_18.txt AC 109 ms 44544 KB
subtask_2_19.txt AC 10 ms 1152 KB
subtask_2_20.txt AC 10 ms 1152 KB
subtask_2_21.txt AC 10 ms 1152 KB
subtask_2_22.txt AC 52 ms 19456 KB
subtask_2_23.txt AC 51 ms 19456 KB
subtask_2_24.txt AC 51 ms 19328 KB
subtask_2_25.txt AC 51 ms 19328 KB
subtask_2_26.txt AC 69 ms 26880 KB
subtask_2_27.txt AC 68 ms 26624 KB
subtask_2_28.txt AC 12 ms 1920 KB
subtask_2_29.txt AC 20 ms 5632 KB
subtask_2_30.txt AC 58 ms 22272 KB
subtask_2_31.txt AC 118 ms 48512 KB
subtask_2_32.txt AC 118 ms 48512 KB
subtask_2_33.txt AC 118 ms 48512 KB
subtask_2_34.txt AC 118 ms 48512 KB
subtask_2_35.txt AC 77 ms 30336 KB
subtask_2_36.txt AC 77 ms 30336 KB
subtask_2_37.txt AC 77 ms 30336 KB
subtask_2_38.txt AC 77 ms 30336 KB