QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#914360#10077. The Cypriote MermaidScreenwalkers (Hirotaka Yoneda, Masataka Yoneda, Daiki Kodama)#AC ✓79ms11944kbC++171.1kb2025-02-25 11:27:212025-02-25 11:27:23

Judging History

This is the latest submission verdict.

  • [2025-02-25 11:27:23]
  • Judged
  • Verdict: AC
  • Time: 79ms
  • Memory: 11944kb
  • [2025-02-25 11:27:21]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;

long long mod = 998244353;
long long Fact[1 << 19];
long long Inv[1 << 19];

long long modpow(long long a, long long b, long long m) {
	long long p = 1, q = a;
	for (int i = 0; i < 30; i++) {
		if ((b >> i) & 1) { p *= q; p %= m; }
		q *= q; q %= m;
	}
	return p;
}

long long Division(long long a, long long b, long long m) {
	return (a * modpow(b, m - 2, m)) % m;
}

void Initialize() {
	Fact[0] = 1;
	for (int i = 1; i <= 300000; i++) Fact[i] = (1LL * i * Fact[i - 1]) % mod;
	for (int i = 0; i <= 300000; i++) Inv[i] = Division(1, Fact[i], mod);
}

long long ncr(int n, int r) {
	if (n < r || r < 0) return 0;
	return (Fact[n] * Inv[r] % mod) * Inv[n - r] % mod;
}

int main() {
	string S; cin >> S;
	Initialize();
	if (S.size() % 2 == 1) {
		cout << "0" << endl;
		return 0;
	}
	int rem1 = S.size() / 2;
	int rem2 = S.size() / 2;
	for (int i = 0; i < S.size(); i++) {
		int c = (S[i] - '0'); c ^= (i % 2);
		if (S[i] == '?') continue;
		if (c == 0) rem1--;
		if (c == 1) rem2--;
	}
	cout << ncr(rem1 + rem2, rem1) << endl;
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 75ms
memory: 10200kb

input:

01?1??

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: 0
Accepted
time: 74ms
memory: 11204kb

input:

0?1?1000???0?0010?0?

output:

70

result:

ok 1 number(s): "70"

Test #3:

score: 0
Accepted
time: 74ms
memory: 10712kb

input:

0??01111011??111

output:

4

result:

ok 1 number(s): "4"

Test #4:

score: 0
Accepted
time: 74ms
memory: 10556kb

input:

0???10??1?1?????11?0??0?0??0??0?????1???1????10?11

output:

565722720

result:

ok 1 number(s): "565722720"

Test #5:

score: 0
Accepted
time: 74ms
memory: 10096kb

input:

?11?1?????????11???0????1???0?????1??1?????1?000???????0???1?11????????????1??0??????????10???0??0??

output:

287125838

result:

ok 1 number(s): "287125838"

Test #6:

score: 0
Accepted
time: 73ms
memory: 11944kb

input:

?0???1???1?0??0?????????00??0?0???1???0?????????1??0???1?1?????1?0?0??01???0???1?0?10???1?????00??1???11?10????1?????11????????11??0?1?????1???0????00?0??????0??1???????????0???0???1?1?0???10????????1?????1??????????????0?00????????1??1?0????0???????1???1?110??0?1?????1???1????1????????????0???1???1...

output:

511534586

result:

ok 1 number(s): "511534586"

Test #7:

score: 0
Accepted
time: 74ms
memory: 10556kb

input:

00011000110110100000110010110010110001000010110100110010110001010001101101110101?110011010011000?011000000000011010001110111101010010011110000101010001010110011010001000011100101?1010101000011001111001000001001110110011111000000100011111000110110001011000101110000100001100000101101011111110010000000...

output:

6

result:

ok 1 number(s): "6"

Test #8:

score: 0
Accepted
time: 73ms
memory: 11196kb

input:

??11110???1??????0??01??0???110??00?1?1?1100?10?1??10?????0??10???0110????0?1101???1?0?010?11??0?1111??????????1????10?0??100???00?1???0?01?01?0????0??11?010???01?0??0?????00??1?0???00???????0????0001??10??0??1010?01??01?1?1?11?1??00?001?11?0?0?0?1?0??????11???0??010???0110?01??0????00??01??????10?0...

output:

466401736

result:

ok 1 number(s): "466401736"

Test #9:

score: 0
Accepted
time: 74ms
memory: 11380kb

input:

??????????????????0???1?1???????1?????????????????????????????????????0????0??1??0??????????0??????????????????????????????????1???????????????????1????????????????????????????0??????????????????????????????1???????????0?????????????1????1?????????1???????????????????????????????0???????????????????...

output:

811681097

result:

ok 1 number(s): "811681097"

Test #10:

score: 0
Accepted
time: 74ms
memory: 11032kb

input:

111????0????00??00?1101??1?0001???010?10010?10110000?11??11101?0?1?00???10??1?010?01?10????0??01????0?010?0??1??0??01??00?10011????0?0??0?001?1011?00??110?011101010?????1?0???11?110??0100100?1??0?01??01?000?0????0?01?1111?11?11???00?0101???0?1110?1?0111?1??11??1111011?0?0101???10?0101011???10??00011...

output:

154048253

result:

ok 1 number(s): "154048253"

Test #11:

score: 0
Accepted
time: 76ms
memory: 11208kb

input:

???0?1?00???01?01111?1?1???0??1011?0??0?10?110?000010?????0??0?000??00?010????00???100?0??10?0?01?01?1110000??001??0?00111??111

output:

0

result:

ok 1 number(s): "0"

Test #12:

score: 0
Accepted
time: 74ms
memory: 10484kb

input:

01010100000001010101?0010101010101010101010?01010101010101?10111010101010101010101010100010101010100010?010101010101000101010101010101010?01?101010001010101010101010101010101010101010101010101010101010101010101010101010101?1010101010101010101010101010101010101010101010001010?01010101010?01010?010101...

output:

0

result:

ok 1 number(s): "0"

Test #13:

score: 0
Accepted
time: 76ms
memory: 11352kb

input:

0101010?0????10?010?0??10101010101??0?01010101010101010101??0?1????10??101?1?101010?010101010?011??10?0101??01010?0?010?010101?1010101010?01010??1?10???01?11?010?0?01??01010101??0?010101110?010?0111?10?0??101?101?10101???10?1101?101???100???101?10??1?1?10??1?????11101?10??1?1?1?101?1?10?01010?01??01...

output:

0

result:

ok 1 number(s): "0"

Test #14:

score: 0
Accepted
time: 74ms
memory: 11412kb

input:

0010101010101010101010101010101?10101010101010101100101010101010101010101010101010101010?01010?010?0?0101010101010101010101010101010101000101?10?0111011101010101??010101011101010101?1010101010101010101010101010111?10?000101010?0101010?0101010101010101010101010?000101010101010101011101010101011101010...

output:

0

result:

ok 1 number(s): "0"

Test #15:

score: 0
Accepted
time: 76ms
memory: 11368kb

input:

010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101...

output:

0

result:

ok 1 number(s): "0"

Test #16:

score: 0
Accepted
time: 77ms
memory: 10268kb

input:

10101010100010101110101010101010101010101010101010101010101011001010101010111110101011101010101010101010101010101010101010101000111010001010101010100010000010101010101010101110101010101010101110101010101011111010101110?010101010101011101010101010101010101110101010101010101010101010101010101010101010...

output:

0

result:

ok 1 number(s): "0"

Test #17:

score: 0
Accepted
time: 78ms
memory: 11896kb

input:

0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010?01010101010101010101010101010101010101010101010101010101010101010101010101010101?1010101010101010101010101...

output:

0

result:

ok 1 number(s): "0"

Test #18:

score: 0
Accepted
time: 76ms
memory: 10552kb

input:

?1???00?0?010?110??1?0110101?1?1?0?00?1100011010001???0111100110??0??0000?10?0001???10?00?01?0??001101?0???1?11000?000?1010000??0?1????11????1111??111?0001?01?0??11010?1?10?????01?01?011?10??000?00?1?110??1?0?0001?01100?100?010101000011?10?0??10?1???0000?0001?01?0111?00101?1101010100??00001???010?00...

output:

574585470

result:

ok 1 number(s): "574585470"

Test #19:

score: 0
Accepted
time: 79ms
memory: 11732kb

input:

010000110000001110101110110101001010010101001011000110100101111110000011010011011101101000010010000010000101111010100110010001010010100110000001101010101000111010010110011000011111100001101010010101001001110101111000101000111101110001001011010010111101011011100011000100101100001110111000011110100011...

output:

1

result:

ok 1 number(s): "1"

Test #20:

score: 0
Accepted
time: 78ms
memory: 11444kb

input:

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????...

output:

436496381

result:

ok 1 number(s): "436496381"

Test #21:

score: 0
Accepted
time: 77ms
memory: 10316kb

input:

0?01011110101000110?10111?0111?010?0110011?1001?100100010000?00?1010011001000?00110001101001010111?0011?0?1?111011101111110101000100101011100110010101?0000?00?0001010011011011?1?00?1110110110?110111?1000??10?0110??010?1?0?0?11011001?110?00011110?0000100?01111??11?11001101?1100?00001?1100?1?10??11100...

output:

552407607

result:

ok 1 number(s): "552407607"

Test #22:

score: 0
Accepted
time: 76ms
memory: 10928kb

input:

11000?0011?0100?1?111?01001?00111100?10?1010111100011?01?1110011000100011000?001110010100?00001?0010?1001100011100??00111010000111101000010?01000?00?11000111000001?1001110000111110100?11101001100?101010110?111011010101?00110010?001001000?0011110??01?00111??001?000010111111100000001110000011110011010...

output:

46527247

result:

ok 1 number(s): "46527247"

Test #23:

score: 0
Accepted
time: 75ms
memory: 11084kb

input:

110110111010111010010101101000111001000111010000110010100010100101010100111010100101100010101000111010101100001001101111101000010000110010110101010011011100010001000101111011001101100010011011111110010110011101011010111010111110100101010100010001110010011001010010011001000101111000101011100101001011...

output:

1

result:

ok 1 number(s): "1"

Test #24:

score: 0
Accepted
time: 74ms
memory: 10956kb

input:

101110011101101000011010101101000100001010010011100001111101101001101101010011111111001001010010010100000010011100100110110000000111110111111010011000000111111110011001000101110000010010101111000111001000010011000000011010000010101001010000011001010101011010011011110000001111011110011010001110000001...

output:

0

result:

ok 1 number(s): "0"

Test #25:

score: 0
Accepted
time: 73ms
memory: 11804kb

input:

0010010100011110100110110100?100100001010?01101100001001100?010010?00?010100111111011101001010100011001101100001?1100010100010100100011101001010110110111111?1111100110111010110000?1110100000111001001?01001011111?10001110001111000110100110100?11010010010?10101100010101?010000000000011000000001?010011...

output:

72476953

result:

ok 1 number(s): "72476953"

Test #26:

score: 0
Accepted
time: 74ms
memory: 10296kb

input:

1

output:

0

result:

ok 1 number(s): "0"