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 |
|
|
|
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 |