QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#563167#1790. 机器人游戏Elegia100 ✓35ms6232kbC++147.5kb2024-09-14 03:15:362024-09-14 03:15:36

Judging History

你现在查看的是最新测评结果

  • [2024-09-14 03:15:36]
  • 评测
  • 测评结果:100
  • 用时:35ms
  • 内存:6232kb
  • [2024-09-14 03:15:36]
  • 提交

answer

#include <bits/stdc++.h>

typedef unsigned long long ull;

const int P = 1000000007;

int norm(int x) { return x >= P ? x - P : x; }
int reduce(int x) { return x < 0 ? x + P : x; }
int neg(int x) { return x ? P - x : 0; }
void add(int& x, int y) { if ((x += y - P) < 0) x += P; }
void sub(int& x, int y) { if ((x -= y) < 0) x += P; }
void fam(int& x, int y, int z) { x = (x + y * (ull)z) % P; }
int mpow(int x, unsigned k) {
	if (k == 0) return 1;
	int ret = mpow(x * (ull)x % P, k >> 1);
	if (k & 1) ret = ret * (ull)x % P;
	return ret;
}

int popcnt(int x) { return __builtin_popcount(x); }

const int N = 32, M = 1010;

int n, m, high;
char str[110];

int len[M];
unsigned mask[M][4];
unsigned tmp[4];

int pw2[M], pw3[M];
int dp[1 << (N / 2)], tdp[1 << (N / 2)];
int memo[1 << (N / 2)];
int mem[1 << (N / 2)], mem2[1 << (N / 2)];
int memc1[1 << (N / 2)], memc2[1 << (N / 2)], mem2c1[1 << (N / 2)], mem2c2[1 << (N / 2)];
unsigned bitrev[1 << (N / 2)];

void supsum(int* a, int l) {
	for (int i = 0; i != l; ++i) for (int j = 0; j != 1 << l; ++j)
		if ((j >> i) & 1)
			a[j ^ 1 << i] += a[j];
}

bool subset(unsigned x, unsigned y) { return (x & y) == x; }

void dfs1(int i, unsigned ori, unsigned rev, int carry) {
	if (i == high) {
		bitrev[ori] = (rev << 1) | 1;
		memo[ori] = carry;
		return;
	}
	for (int b = 0; b <= 1; ++b) {
		unsigned nori = ori | (b << i), nrev = (rev << 1) | b;
		int ncarry = b ? P - carry : carry;
		ncarry = ncarry * (ull)pw2[memc1[nrev] - 2 * memc2[nrev]] % P * (ull)pw3[memc2[nrev]] % P;
		dfs1(i + 1, nori, nrev, ncarry);
	}
}

void dfs2(int i, unsigned ori, unsigned rev, int carry0, int carry1) {
	if (i == 0) {
		memo[ori] = memo[ori] * (ull)carry0 % P;
		memo[ori + 1] = memo[ori + 1] * (ull)carry1 % P;
		return;
	}
	for (int b = i == high; b <= 1; ++b) {
		unsigned nori = ori | (b << i), nrev = (rev >> 1) | (b << (high - 1));
		int nc0 = b ? carry1 : carry0, nc1 = carry1;
		nc1 = nc1 * (ull)pw2[memc1[nrev] - 2 * memc2[nrev]] % P * (ull)pw3[memc2[nrev]] % P;
		nc0 = nc0 * (ull)pw2[mem2c1[nrev] - 2 * mem2c2[nrev]] % P * (ull)pw3[mem2c2[nrev]] % P;
		dfs2(i - 1, nori, nrev, nc0, nc1);
	}
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr); std::cout.tie(nullptr);

	std::cin >> n >> m;
	pw2[0] = 1;
	for (int i = 1; i <= m; ++i) pw2[i] = norm(pw2[i - 1] << 1);
	pw3[0] = 1;
	for (int i = 1; i <= m; ++i) pw3[i] = pw3[i - 1] * 3ULL % P;
	for (int i = 0; i != m; ++i) {
		std::cin >> str;
		int k = 1, b = 0;
		auto stab = [&]() {
			for (int in = 0; in <= 1; ++in) {
				int out = (k * in + b) & 1;
				mask[i][in * 2 + out] |= 1U << len[i];
			}
			k = 1; b = 0;
		};
		for (char* p = str; *p; ++p) {
			switch (*p) {
			case 'R': stab(); ++len[i]; break;
			case '0':
			case '1': k = 0; b = *p - '0'; break;
			case '*': b ^= 1; break;
			}
			if (len[i] == n) break;
		}
		if (len[i] < n) {stab();}
		for (int j = len[i] + 1; j < n; ++j) {
			mask[i][0] |= 1U << j;
			mask[i][3] |= 1U << j;
		}
	}
	int ans = 0;
	for (high = 0; high != (n + 1) / 2; ++high) {
		memset(memc1, 0, sizeof(int) << high); memset(memc2, 0, sizeof(int) << high);
		for (int j = 0; j != m; ++j) if (len[j] < n - high) {
			static int shrink[4];
			for (int k = 0; k != 4; ++k) shrink[k] = mask[j][k] & ((1 << high) - 1);
			++memc1[shrink[0]]; ++memc1[shrink[3]];
			++memc2[shrink[0] & shrink[3]];
		}
		supsum(memc1, high); supsum(memc2, high);
		dfs1(0, 1U << high, 0, 1);
		for (int i = 0; i != n - high * 2; ++i) {
			memset(memc1, 0, sizeof(int) << (high + 1)); memset(memc2, 0, sizeof(int) << (high + 1));
			for (int j = 0; j != m; ++j) if (len[j] < n - high) {
				static int shrink[4];
				for (int k = 0; k != 4; ++k) shrink[k] = (mask[j][k] >> i) & ((2 << high) - 1);
				for (int k = 0; k != 4; ++k) ++memc1[shrink[k]];
				for (int k = 0; k != 4; ++k) for (int l = k + 1; l != 4; ++l)
					++memc2[shrink[k] & shrink[l]];
			}
			supsum(memc1, high + 1); supsum(memc2, high + 1);
			for (int j = 1 << high; j != 2 << high; ++j) {
				int c1 = memc1[bitrev[j]], c2 = memc2[bitrev[j]];
				memo[j] = memo[j] * (ull)pw2[c1 - c2 * 2] % P * pw3[c2] % P;
			}
		}
		if (high) {
			memset(memc1, 0, sizeof(int) << high); memset(memc2, 0, sizeof(int) << high);
			memset(mem2c1, 0, sizeof(int) << high); memset(mem2c2, 0, sizeof(int) << high);
			for (int j = 0; j != m; ++j) if (len[j] < n - high) {
				static int shrink[4];
				for (int k = 0; k != 4; ++k) shrink[k] = (mask[j][k] >> (n - high * 2)) & ((1 << high) - 1);
				++memc1[shrink[0]]; ++memc1[shrink[3]];
				++memc2[shrink[0] & shrink[3]];
				for (int k = 0; k != 4; ++k) ++mem2c1[shrink[k]];
				for (int k = 0; k != 4; ++k) for (int l = k + 1; l != 4; ++l)
					++mem2c2[shrink[k] & shrink[l]];
			}
			supsum(memc1, high); supsum(memc2, high);
			supsum(mem2c1, high); supsum(mem2c2, high);
			dfs2(high, 0, 0, 1, 1);
		}
	}
	for (int i = 1; i != 1 << high; ++i) add(ans, memo[i]);

	for (high = (n + 1) / 2; high != n; ++high) {
		int l = n - high - 1;
		memset(dp, 0, sizeof(int) << l);
		memset(memc1, 0, sizeof(int) << (l + 1)); memset(memc2, 0, sizeof(int) << (l + 1));
		memset(mem2c1, 0, sizeof(int) << (l + 1)); memset(mem2c2, 0, sizeof(int) << (l + 1));
		for (int j = 0; j != m; ++j) if (len[j] <= l) {
			static int shrink[4];
			for (int k = 0; k != 4; ++k) shrink[k] = mask[j][k] & ((2 << l) - 1);
			++memc1[shrink[0]]; ++memc1[shrink[3]];
			++memc2[shrink[0] & shrink[3]];
			for (int k = 0; k != 4; ++k) ++mem2c1[shrink[k]];
			for (int k = 0; k != 4; ++k) for (int l = k + 1; l != 4; ++l)
				++mem2c2[shrink[k] & shrink[l]];
		}
		supsum(memc1, l + 1); supsum(memc2, l + 1);
		supsum(mem2c1, l + 1); supsum(mem2c2, l + 1);
		for (int s = 0; s != 2 << l; ++s) {
			if (!s) {
				mem[s] = 1; mem2[s] = 1;
				for (int j = 0; j != m; ++j) if (len[j] <= l) {
					int cnt = 1;
					cnt += subset(s, mask[j][0]);
					cnt += subset(s, mask[j][3]);
					mem[s] = unsigned(mem[s]) * unsigned(cnt) % P;
					cnt += subset(s, mask[j][1]);
					cnt += subset(s, mask[j][2]);
					mem2[s] = unsigned(mem2[s]) * unsigned(cnt) % P;
				}
			} else {
				mem[s] = pw2[memc1[s] - 2 * memc2[s]] * (ull)pw3[memc2[s]] % P;
				mem2[s] = pw2[mem2c1[s] - 2 * mem2c2[s]] * (ull)pw3[mem2c2[s]] % P;
			}
		}
		for (int s = 0; s != 2 << l; s += 2) {
			int prod = __builtin_parity(s) ? P - 1 : 1, prod2 = prod;
			unsigned ms = s + 1;
			for (int rep = 0; rep <= l; ++rep) {
				if (ms >= (2 << l)) {
					prod = prod * (ull)mem[ms & ((2 << l) - 1)] % P;
					prod2 = prod2 * (ull)mem[ms & ((2 << l) - 1)] % P;
				} else {
					prod = prod * (ull)mem[ms] % P;
					prod2 = prod2 * (ull)mem2[ms] % P;
				}
				ms <<= 1;
			}
			dp[s >> 1] = prod;
			sub(prod2, prod);
			ms = s + 1;
			for (int i = high - 1; i >= 0; --i) {
				ms >>= 1;
				prod2 = prod2 * (ull)mem[ms] % P;
			}
			add(ans, prod2);
		}
		for (int i = high - 1; i >= l; --i) {
			memset(tdp, 0, sizeof(int) << l);
			for (int s = 0; s != 1 << l; ++s) {
				for (int b = 0; b <= 1; ++b) {
					unsigned ms = s | (b << l);
					if (b) fam(tdp[(s + (b << l)) >> 1], dp[s], P - mem[ms]);
					else fam(tdp[(s + (b << l)) >> 1], dp[s], mem[ms]);
				}
			}
			memcpy(dp, tdp, sizeof(int) << l);
		}
		for (int s = 0; s != 1 << l; ++s) {
			int prod = dp[s];
			unsigned ms = s;
			for (int rep = 0; rep != l; ++rep) {
				prod = prod * (ull)mem[ms] % P;
				ms >>= 1;
			}
			add(ans, prod);
		}
	}
	std::cout << ans << '\n';

	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 4
Accepted
time: 0ms
memory: 5604kb

input:

1 1
0

output:

3

result:

ok single line: '3'

Test #2:

score: 4
Accepted
time: 0ms
memory: 5556kb

input:

1 1
*

output:

3

result:

ok single line: '3'

Test #3:

score: 4
Accepted
time: 0ms
memory: 3772kb

input:

8 1
RRRR

output:

6561

result:

ok single line: '6561'

Test #4:

score: 4
Accepted
time: 0ms
memory: 5876kb

input:

16 1
1*RR0RRRR1RRR0*R

output:

228047430

result:

ok single line: '228047430'

Test #5:

score: 4
Accepted
time: 31ms
memory: 5928kb

input:

32 1
RRRRRRRRR*R0RRR*R*0RRRRRRRRRR1R*1R*

output:

456286566

result:

ok single line: '456286566'

Test #6:

score: 4
Accepted
time: 31ms
memory: 5940kb

input:

32 1
R11RRR*RR1RR0RRRR1RRRR*0R*RRRR1RRRRR1R*RRR

output:

987597859

result:

ok single line: '987597859'

Test #7:

score: 4
Accepted
time: 0ms
memory: 3544kb

input:

16 5
0RRR0
R*RRR
RRRRRR
RRR1R0R
R1*RRRRRRRR1R1RR1RRR

output:

920870788

result:

ok single line: '920870788'

Test #8:

score: 4
Accepted
time: 31ms
memory: 5816kb

input:

32 5
RRRRRRRR1*RRR
R1R*0R1R***1RRRRRRRRR**RRRRR01*01RR0R*R*RRR
R0RRRRR0RRR0R0RRR0R*RRRR*RR0RR
R1RRRRRRRRR*0RRRR1RR10R*RRR1R11RRRR01*
0R0R0RR0R11RRR0RR0RRR**1*RRR1RRRR0*0RR1R

output:

724757213

result:

ok single line: '724757213'

Test #9:

score: 4
Accepted
time: 31ms
memory: 5864kb

input:

32 5
R1*R*RRRRRRRRRRR01R*R0
1R0RRRR1RR1R***RR0R*RR*RRR*1RR
0
1RRRR0RRRRR1R1RRRR0RRR01R*R01
RRRRR1RRRRRR

output:

339267352

result:

ok single line: '339267352'

Test #10:

score: 4
Accepted
time: 31ms
memory: 5864kb

input:

32 5
RRR*0RR*RR1R1*R10RRRRRR1RRRR1
0RR*RRRRR*R*R0
0RRRR*RRR
0R1RRRRR0RRRRR0RRRR**0RRRRRRRRRRRRRRR
RRRR01RR0R1R0R*R1RR10RRRRRRRR0RR*R0RRR1R

output:

305204884

result:

ok single line: '305204884'

Test #11:

score: 4
Accepted
time: 1ms
memory: 3948kb

input:

16 1000
RRRRRR1RRRRR*RRR
RRR1RR*0RRR1RRR
R0RR11RRR*RRRR0R0R
R1
RRR1RRRRRR1RRR10*
RR*RRR1RRRRRRRR
RR
RRRRRRRRR*R
R*
1RRR*R00*
R0R0R*RRRR
RRRRR000RR
R1R1R1*RRRRRR*
RR1*0*1RRRRRR*RRRRRR
RR
RRRRRRR*R
0RR*RRRRRRRRRRRR10R
RRR*RR1RRRR0RRR*0RRRR
R*1R1RRRR1RRRRRRR
RRRRRRRRR
RRRRR*RRRRR
RR0RR10RR11R
*
0
R1*RR...

output:

278439170

result:

ok single line: '278439170'

Test #12:

score: 4
Accepted
time: 1ms
memory: 3616kb

input:

16 1000
*
RRR0R*0RR
*RRRRRRR0RRR1RRR1RRR
R*RRRRRR11RRRRRRR1R
R
R0R
0RRRRRR1RRRRR
RR**0*R0R
0***R*R*1R
11RRRRRRRRR1RR1
1RR
RR1R
RRRRR0R*R10RRR1RRR1R
RR1R**RR10
1
RRRRRRRR*
R1RRRRRRR0R*RR
*RR*R1*
R0RR
RR1R0RR1*RRRRRRRR1
R
RRR1RRRR1*RRRRR*RRR*
RRR0RRRRR0RR0R1
RRRRRRRRRRRR
R
R0RR1RRR1RR1
**RRRRRR1*RRRR1...

output:

937144102

result:

ok single line: '937144102'

Test #13:

score: 4
Accepted
time: 30ms
memory: 6012kb

input:

32 1000
0
*
0
1
0
0
*
*
0
0
*
1
*
0
1
*
0
0
1
1
1
1
*
0
1
0
0
1
1
*
1
0
0
1
*
0
0
0
*
1
*
0
*
0
*
0
0
*
0
*
*
0
0
1
*
0
*
0
0
1
1
*
0
0
*
1
*
*
*
0
0
1
0
0
*
*
*
0
0
0
0
*
*
*
1
1
*
0
*
0
*
0
*
0
1
*
*
*
*
0
1
0
0
*
0
0
*
0
1
*
0
*
*
1
1
*
0
*
0
1
0
*
1
*
1
1
1
*
0
1
*
*
1
0
1
1
0
0
0
0
0
0
0
1
*
1
...

output:

675565814

result:

ok single line: '675565814'

Test #14:

score: 4
Accepted
time: 26ms
memory: 5888kb

input:

32 1000
*
*
0
*
*
*
0
0
*
0
*
1
*
*
0
0
1
1
1
0
0
*
0
1
0
*
*
0
0
1
1
0
*
1
*
*
0
0
1
0
*
*
0
0
1
0
0
*
*
*
1
1
1
1
*
1
0
1
1
*
1
*
0
1
*
*
*
*
*
0
0
1
1
1
1
0
1
1
0
1
0
*
*
*
*
1
0
1
0
0
1
0
0
1
1
0
1
*
*
1
1
0
0
0
1
*
1
*
0
1
0
0
0
*
0
*
0
0
*
0
0
1
1
0
1
0
0
0
1
*
0
0
*
1
1
0
1
*
*
1
1
1
0
1
1
1
...

output:

969266411

result:

ok single line: '969266411'

Test #15:

score: 4
Accepted
time: 30ms
memory: 6016kb

input:

32 1000
1
0
0
1
0
1
0
*
0
1
1
0
0
1
0
1
0
0
1
0
*
0
*
*
*
0
0
*
0
1
0
0
0
1
0
0
*
0
0
*
*
*
*
0
*
1
*
0
0
1
1
1
1
0
1
*
*
*
0
*
1
*
0
*
1
*
0
0
1
*
*
1
1
*
0
0
1
1
*
*
1
*
0
*
*
*
0
*
0
1
0
*
*
*
0
1
0
1
0
0
1
*
*
0
0
0
0
1
*
1
1
*
*
0
0
1
1
1
0
0
*
*
1
*
1
*
1
*
*
*
0
0
0
1
1
1
0
1
0
*
1
*
1
0
0
1
...

output:

648679786

result:

ok single line: '648679786'

Test #16:

score: 4
Accepted
time: 34ms
memory: 5872kb

input:

32 1000
R1R0RRRRR0R*R1RRRRR**
RRR0R0RR*RRRR
1R*RR0R00RRR
0RRRRRRRRRRR
R1RRRRRR0RR1RRR1
R0R
RRR0RRRRRR**RRR*0RR0
0
R1RR1RRRRR0
RR0*R0RRRRRRR*1RRR
R*1*RRR
RRRRRRRRRR*1R00RR*0*RR00
RRRR1RRRRR
RRR*RRR1RRR*RRR1RRR
R0
1RRRRR*R1RRR*R1
RR1RRRRRR
R1110*RRRRR***RRRR1RRRR
0*R00R1RR0RRR
RRRRR100RR*RRRRR
*
0R1RR...

output:

19340709

result:

ok single line: '19340709'

Test #17:

score: 4
Accepted
time: 34ms
memory: 5884kb

input:

32 1000
RR
1*RRRR1R
R0R
R0R*RRR*RR**R*R*RRR*RR
R
R0RRRRR101RRR
0RRR1RRRRR
0*R*
RRRRRR0RRR1R0RR0R
RRRR01R
1R0RRR0RRRRRR
R0R1R
**1RRRR1
R1R
RR1RRRRRR0RRRRRR
R*R11RRRR***RR*RRRR
RRR1*0RRRR00*R*RRRR1R
RRR
*R*RRR
RRRRRR*RR1RRR1RRRR
RRRRR0RRRRRR
RR11RR
R1RRRRR
R00RR1**RRRRRRRR1RRR
*RR0RR*R1*RRRRR01*0R*
RR...

output:

484551342

result:

ok single line: '484551342'

Test #18:

score: 4
Accepted
time: 35ms
memory: 5948kb

input:

32 1000
1R1RRRR
R0*1RRR1RRRRRRRRRR0R0
0RRR
RRR0RR*R*RRR
01RRRR0RRRRR*R0RRR*R
RR*
*RR1RRRRRRR*R
RR1RRR**RRRR0RRRR*
R**1RRRR0RRR0R1RR1R1RR1
RRRRR*10R
RR*1R1RRRRR1RRR
RR
RRR**1R1RR1
RRR1RR0RR1*1RRRRR*R0R
RRR*
RRRRR11RR
RRRRR1R*RR
R1RRRRR**RR
0R*R10*RR1RRR
11R1R*RRR
1RRRRRR0RRRRRR0**RR
R*1RRR1R0RRRRR
*
...

output:

907694742

result:

ok single line: '907694742'

Test #19:

score: 4
Accepted
time: 26ms
memory: 5948kb

input:

32 1000
RRRRR0RR0RR
RRRR*0RR0RRRRR*R0RR
RR0
0RR
0RRRRRRRRRR0RRRR1R
RRRR
RRR
R1RRRRR*
RR1RRRRR0RR1
0RRR0
RRRR0RRRRRRRRRRR1
RR*RRR1R*R
RRR*R*0RRR
RRRRR
RRRR1RRRR0R0RR*RR
R
R*11R1*RRRR
RR0RRRR0R0RRRR*1R
*RR0RR*R*RRR0
RR*R0*R1R1*RR10RR
R*R
RRRR
0RRRRRRRR
RR001RR
R1RRRRR*
RR**
1RR10R*R
RR1RRRRRRRRRRR*
RR...

output:

424231090

result:

ok single line: '424231090'

Test #20:

score: 4
Accepted
time: 34ms
memory: 6228kb

input:

32 1000
1RRRRRRR*RR*RRR*R
*RR
RRRRRRR1RR01R1*R
*11RRR0RR*RR1
RRRRR*R1RRRRRRR
1RR
**RRRRR
RRRRR1R1RR011R
*R*RRR*R0*0R1*RRRRRRRR
RRRR*RRRRR00RR
RRRRRRR0RRRR0RR1*R1
000RRRRR1RR1R
RR
RRR0RRRRRR00R
RRR1RRRRRRR*00RRRR
RRRRRRR0R11RR0RR1
1RRRRR0R10RRR0RRR
RRRRR0R1*RRR
RRR*RRRRR0RRR*R
RRRRR1R0RR
RRRRR1RRRRRR...

output:

577668630

result:

ok single line: '577668630'

Test #21:

score: 4
Accepted
time: 30ms
memory: 6148kb

input:

32 1000
R0
0
11RR0RR
RRRR0RR010000R
RRRRRR*RRRRR0R*RRR
RRRR
RRRRRRRR
R*RRRR1*0R
R*RR**RRR0
*
RRRR1R1*R1RR0RR01RRR0
RR1R0RR*1*RRRR0R*R*
RRR*0RR*RR00RRR*RRR1*R
1R*R10RRRRRRR11RR1
RRRRRRRRRR0RR
0RR*R1R11RR*R*RRRR*R
RRR
*0R11RRR
1*1R
R1R1R*0RR0RRR*00RR1RR1RR1
R1**RRRR1R*RRRRRRRR
1
**RRRR1RRRRR1RRR1*R**
...

output:

819220679

result:

ok single line: '819220679'

Test #22:

score: 4
Accepted
time: 34ms
memory: 5948kb

input:

32 1000
R0RRR00*R1R0R0R00RRRR
RR*0RRRRRRRRRRRRR*0RRRRRR
RRRRRRRRR
0R10RR1RRRR*
RRRRRRR1RRRRRRRRR*RR1RRRRR00RRRRRRR
R0RRR
RRR1RRRRRR1RRR10*RRRRRR
RRR*RRRRR*RR0RR
RRRR01RRRRR
RRR1RRRRRRRRR1R
0RRR1**RRR1R1R1RRRR*1RR1RRRRRRRR1R0RRRR*RRRR*R
R*RRR0RRRRR
R*RR1RRRRRRRRR*0RR*RR0R*RRRRRR*R1R1RRRR
RR0RR*RRR1R0...

output:

691327935

result:

ok single line: '691327935'

Test #23:

score: 4
Accepted
time: 34ms
memory: 5940kb

input:

32 1000
RRRRRR0*RRRRRRR0RRRRRRRRRRRR
RRR0*1RRRR0RRRR
RRRRR1R
0R0RRR011RRRRRRRR
0RR0RR*RR*RR*RRRRRRRR*
1RR0RRRRRR**0RR1R0**RR0*RRRR*RRR*
RRR00RR1RRR**R*
R01RRRR11R0*0R1*RRRRRRRR*RR0R0RR*00R*RR0R1RRRRRR*
RRR1RRRRRRRR*
RRRRRRRRR*1R*RRR1R0R0*0
R1RR01*RRRRRR
RR11RRR1R1R**RRRR*1R*RRR
R*RRRRRR0RRRRR00R0RRR...

output:

714451377

result:

ok single line: '714451377'

Test #24:

score: 4
Accepted
time: 34ms
memory: 5888kb

input:

32 1000
RRR0R*R0
RRRRRRRR0RRR*R1R*R00R
RRRRRRRRRRR0RR1RRRRRR1RRRR*RRRRRRR00RR
RRRRR
R0RRRRRRRR1
RRRRRRRRRRR1*R*RRRRRRRR
RR*RR*RRR1RRRRRR
*R*1RR0RRRRRRRRR*R1RRRRRRRRRRR1R10R*R1R
1
RRRR
RR11RRRRRRRR1RRRR1RR1RR
RRRRRRRRRR*RRRR*RRRRR*11RR*RRR1RRR10RR
0R1RR0R1R*RRRR*RRRR*1R0RRRRR*RR
RRRRRRRR
*RRRRRRRRRR0...

output:

426645236

result:

ok single line: '426645236'

Test #25:

score: 4
Accepted
time: 30ms
memory: 6232kb

input:

32 1000
1RR1RRRRRR0RRRRRRRRRR
RR1*RRRR1RRRRR*R
RR*RRRR11R
RRR*0*0RR
R0*RRRRRRRRRR0RR0R
R0RRRRRR1R0RRR1R
RRRRRR*R0RRRR00RRRRR0RRRR1RR1RR
RRR*RR*R0*RRRR0RR0RRRRRRR*R10RRRR
RRRR00*
RRRRRRRRRR*R0RR1RRRR
RRRRRR1RRR1*0R*R0*RRRRRRR0RRR*R
10*RRRRRRRR1RR0RRRRRRR0RR0RRR
RRRR*0R1RR
RRRRRR
RR0R1RRRRR*RRRRRRRRRR...

output:

780564072

result:

ok single line: '780564072'

Extra Test:

score: 0
Extra Test Passed