QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#856090#9970. Looping RPSideograph_advantage#TL 107ms30516kbC++203.8kb2025-01-13 16:07:452025-01-13 16:07:46

Judging History

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

  • [2025-01-13 16:07:46]
  • 评测
  • 测评结果:TL
  • 用时:107ms
  • 内存:30516kb
  • [2025-01-13 16:07:45]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

#define iter(v) v.begin(), v.end()
#define SZ(v) int(v.size())
#define pb emplace_back
#define ff first
#define ss second

using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;

#ifdef zisk
void debug() { cerr << "\n"; }
template<class T, class ... U>
void debug(T a, U ... b){ cerr << a << " ", debug(b...); }
template<class T>
void pary(T l, T r) {
	while (l != r) cerr << *l << " ", l++;
	cerr << "\n";
}
#else
#define debug(...) void()
#define pary(...) void()
#endif

template<class A, class B>
ostream &operator<<(ostream &o, pair<A, B> p) {
	return o << '(' << p.ff << ',' << p.ss << ')';
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	int n;
	cin >> n;

	vector<string> s(n);
	vector<pii> ord;
	const int sz = 40;
	vector rank(sz, vector<vector<int>>(n));
	for (int i = 0; i < n; i++) {
		cin >> s[i];
		for (int j = 0; j < sz; j++)
			rank[j][i].resize(SZ(s[i]));
		for (int j = 0; j < SZ(s[i]); j++)
			ord.pb(pii(i, j));
	}
	auto get_char = [&](pii p) {
		return s[p.ff][p.ss];
	};
	sort(iter(ord), [&](pii x, pii y) {
		return get_char(x) < get_char(y);
	});
	{
		char lst = 0;
		int rk = -1;
		for (int i = 0; i < SZ(ord); i++) {
			auto [x, y] = ord[i];
			if (get_char(ord[i]) != lst) {
				rk++;
				lst = get_char(ord[i]);
			}
			rank[0][x][y] = rk;
		}
	}
	//pary(iter(ord));

	for (int t = 0; t < sz - 1; t++) {
		vector<vector<pii>> bucket(SZ(ord));
		for (auto [x, y] : ord) {
			int ty = (y - (1LL << t)) % SZ(s[x]);
			ty = (ty + SZ(s[x])) % SZ(s[x]);
			//debug("QQ", x, y, ty);
			bucket[rank[t][x][ty]].pb(pii(x, ty));
		}
		auto get_pair = [&](pii p) {
			auto [x, y] = p;
			return pii(rank[t][x][y], rank[t][x][(y + (1LL << t)) % SZ(s[x])]);
		};
		/*sort(iter(ord), [&](pii x, pii y) {
			return get_pair(x) < get_pair(y);
		});*/
		ord.clear();
		for (int i = 0; i < SZ(bucket); i++)
			for (auto &p : bucket[i]) ord.pb(p);
		//pary(iter(ord));
		pii lst = pii(-1, -1);
		int rk = -1;
		for (int i = 0; i < SZ(ord); i++) {
			auto [x, y] = ord[i];
			if (get_pair(ord[i]) != lst) {
				rk++;
				lst = get_pair(ord[i]);
			}
			rank[t + 1][x][y] = rk;
		}
	}

	vector<ll> lcp(SZ(ord));
	for (int i = 0; i + 1 < SZ(ord); i++) {
		auto [x1, y1] = ord[i];
		auto [x2, y2] = ord[i + 1];
		for (int t = sz - 1; t >= 0; t--) {
			if (rank[t][x1][y1] != rank[t][x2][y2]) continue;
			y1 = (y1 + (1LL << t)) % SZ(s[x1]);
			y2 = (y2 + (1LL << t)) % SZ(s[x2]);
			lcp[i] += 1LL << t;
		}
	}

	vector<vector<ll>> tab(21, vector<ll>(SZ(ord)));
	tab[0] = lcp;
	for (int i = 1; i <= 20; i++) {
		for (int j = 0; j + (1 << i) - 1 < SZ(ord); j++) {
			tab[i][j] = min(tab[i - 1][j], tab[i - 1][j + (1 << (i - 1))]);
		}
	}
	auto query = [&](int l, int r) {
		int lg = __lg(r - l + 1);
		//debug("query", l, r, ":", min(tab[lg][l], tab[lg][r - (1 << lg) + 1]));
		return min(tab[lg][l], tab[lg][r - (1 << lg) + 1]);
	};

	vector<int> all;
	int id = 0;
	for (auto [x, y] : ord) {
		if (y == 0) all.pb(id)/*, debug("test", x)*/;
		id++;
	}

	auto find_next = [&](int x, ll low) {
		int l = x, r = n;
		while (l + 1 < r) {
			int mid = (l + r) / 2;
			if (query(all[l], all[mid] - 1) > low) l = mid;
			else r = mid;
		}
		return l;
	};
	/*pary(iter(ord));
	pary(iter(all));
	pary(iter(lcp));*/

	ll ans = 0;
	auto dfs1 = [&](auto dfs, int tl, int tr) -> void {
		if (tl >= tr) return;
		ll pos = query(all[tl], all[tr] - 1);
		if (pos > 1e12) return;
		//debug("try", tl, tr, ",", pos);
		int mid1 = find_next(tl, pos);
		//if (mid1 >= tr) return;
		assert(mid1 < tr);
		int mid2 = find_next(mid1 + 1, pos);
		//debug("dfs", tl, tr, ",", pos, ":", mid1, mid2);
		// [tl, mid1] [mid1 + 1, mid2] [mid2 + 1, tr]
		if (mid2 + 1 <= tr) {
			ans += (ll)(mid1 - tl + 1) * (mid2 - mid1)  * (tr - mid2);
		}
		dfs(dfs, tl, mid1);
		dfs(dfs, mid1 + 1, mid2);
		dfs(dfs, mid2 + 1, tr);
	};
	dfs1(dfs1, 0, n - 1);
	cout << ans << "\n";

}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3596kb

input:

6
P
PN
KK
N
PKK
PN

output:

6

result:

ok 1 number(s): "6"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3792kb

input:

10
KKKNP
KNKPPKNK
KNKPP
KNKPPKN
KKKN
NNKNNNKNNNKNNNKNNNKNNNKNNNKNNPN
NNKN
NPPN
NNKNNNKNNNKNNNKNNNKNNNKNNNK
KKKNN

output:

3

result:

ok 1 number(s): "3"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3796kb

input:

10
NNNPNNNPNNNPNNNK
KKN
NNNP
KKP
NNNPNNNPNNNPN
KKNKKNKKPN
KNNPNPNKKKNPPKNKKKNKNKKNKPPPNKKPKP
KKPK
KKNKKNK
KKPKKN

output:

3

result:

ok 1 number(s): "3"

Test #4:

score: 0
Accepted
time: 1ms
memory: 3540kb

input:

10
K
PPPNNPPPNNPPPNNPPPNNPPPNNPPPNNPPPNNPPPNNP
PPKP
PPPNNPPPNNPPPNNPPPNNPPPNNPPPNNPPPNNPPPNNPPPK
P
K
N
P
PPPNN
N

output:

25

result:

ok 1 number(s): "25"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3536kb

input:

10
NPNKP
NNNNKNNNNPP
PPKPNNNNPNKKKN
NPNKPNP
NNNNKN
NNNNK
NKNPKKPNPKKNPNKN
NKNPKKPNPKKNPNK
NKNPKKPNPKKNP
NPNKPNPN

output:

30

result:

ok 1 number(s): "30"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3536kb

input:

10
KPKKPKKPKKPKKP
KPKKPKKPKKPKKPKNK
PNPNP
KPK
PN
NPNPNNPNPNK
NKKPKKPKPPKKPKKKKPKNKPPKPPNKNP
NPNPNNP
PNPNPK
NPNPN

output:

39

result:

ok 1 number(s): "39"

Test #7:

score: 0
Accepted
time: 1ms
memory: 3660kb

input:

4
KKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPK
NN
KKP
KKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKPKKNK

output:

1

result:

ok 1 number(s): "1"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3856kb

input:

7
KPKN
KPKNKPKNKPKNKPKK
NKPPNNNPKKNN
KPPKPKPPKPKPPKPKPPKPKPP
KPKNKPKNKPKNKP
KPPKP
KPPKPKPPKPKPPKPKPPKPKPPKPN

output:

2

result:

ok 1 number(s): "2"

Test #9:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

10
NKNNKNKN
KPKN
PKPN
PNNNNNNKKNNPNNKNPPKPPNPNPPKKKPNNNPNPKKNK
PKPNPKP
PKPNPK
KPKNKP
NKNNKNKNNKNPN
KPKNKPK
NKNNK

output:

39

result:

ok 1 number(s): "39"

Test #10:

score: 0
Accepted
time: 6ms
memory: 4520kb

input:

300
NKNPNK
NKKNKK
KPPNPN
KKPNKNK
PKKNPKP
KPKPPPN
NNKPPNN
NPKPPKN
KNNKKPK
PPPNPKK
NKPKNP
KPKNNPP
NNPKNP
PNPPPKN
PKKPNP
PPNNKK
PKNKNK
PKNPNK
NKNPNPP
KNKNNPN
NKPPPPK
NNPPKKN
KNKKNPK
KKNNPKN
PPPKNK
NPPPPPP
NKKPKPP
KNKNPPK
KPKPNNK
NPNNKN
PNPNKP
PNPKKP
KKKKPKN
NNNKNPK
NPNKPNK
NNNKNK
PPKKNKP
NNNKPPK
KPNKPP...

output:

1102940

result:

ok 1 number(s): "1102940"

Test #11:

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

input:

91
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKN
KKKKKKKKP
PNPKPPNP
KKKN
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKN
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKP
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKN
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKP
KKKKKKKKKKKKKKKKKKKKKKN
KKKKKKKN
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKP
KKKKKKKKKKKKP
...

output:

2151

result:

ok 1 number(s): "2151"

Test #12:

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

input:

72
PKPPKPPKPPKPPKPPN
PKP
NNNNNK
NPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNPNNP
NNPNNPNNPNNPNNPNNK
NP
PPPPPPN
PKPPKPPKPPKPPKPP
PPPPKPP
PPK
NNNNNPP
NNNNPNNNNPNNNNPN
KPNNNKKPPKPKKNPPKKNNKPKPKPKPPPKPPKPNNKPPKPPPNNNKKNNPKKKKKN...

output:

14794

result:

ok 1 number(s): "14794"

Test #13:

score: 0
Accepted
time: 5ms
memory: 4264kb

input:

91
PKKK
KKKNKKKKNKKKKNKK
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPKP
PPPPNPPPPNPPPPNPPPPNPPPPK
PPPPNNPPPPPNNPPPPPNNPPPPPNNPPPPK
NKNKNKNKN
PNPPNPKPPNPPN
NPKNPKNPKNPKNPKNPKNPKNPKNP
PNPPNPKPPNP
KKPK
KKKKKNKKKKKKNKKKKKPN
NPK
PPNKPPKPPNKPPPNKPPK
KKP
PNPPNPPNPPNPKK
PPPPPPNPPPPPPNPPPPPPNPPPPPPK
PPPPPPNPPP...

output:

24738

result:

ok 1 number(s): "24738"

Test #14:

score: 0
Accepted
time: 5ms
memory: 4220kb

input:

130
PKPKPKPKPNPKPKPKPKPKPN
NPNPNPNPN
N
PNKPNKP
PNKPK
NNNNKNNNNPPNNNNKNNNNNKNNNNPP
NNNNNNNNKNNNNNNNNKN
NK
K
NPPNKNPPN
NKNKNKNNKNKNKNNKNKNKNNKNKNKNKNNKNKNKNNKNKNKNNKNKNKNPN
PKPKPKPKPKPKPKPKPKPKPNKPKPKPKPKPKPKPKPKPKPKP
NNNNNNNNK
KKKN
PPPN
NNNNNNNNNNNNKN
NPKNPKNPP
PPPKNPPPKNPPPKNP
PPPPPNP
KKP
PKN
PPPPPN...

output:

86902

result:

ok 1 number(s): "86902"

Test #15:

score: 0
Accepted
time: 2ms
memory: 4168kb

input:

76
N
NKNKNNKNKNKN
KPKPKPKPKPKN
NK
KKKKKNK
NNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNKNNPNNPNNNPNNPNNKNNPNNPNNPNNKNNPNNPNNNPNNPNNK
NNPNNPNNPNNPNNPNNPNNPNNPNNK
KKKKKKKKKKPKKKKKKKKKKNP
KKPKKPK
PPPPPPPPPPPN
...

output:

12533

result:

ok 1 number(s): "12533"

Test #16:

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

input:

35
KPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKNKKP
P
KNKNKKNKNKNKKNKNKP
N
KKKKKKKKKKKKKKKKKKKKPKKKKKKKKKKKKKKKKKKKKKP
PNPNPNP
KPKPKPKPKPKPKPKPKNKKPKPKPKPKPKPKPKPKPKNK...

output:

1178

result:

ok 1 number(s): "1178"

Test #17:

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

input:

19
KPKPKPKPKKPKPKPKPKKPKPKPKPKKPKPKPKPKN
NPNPNNPNPNNP
NPNPNNPNPNNPNPNPNNPNPNNPNPNPNNPNPNNPNPNPNNPNPNNPNPNPNNPNPNNPNPNK
NPNPNNPNPNNPNPNPNNPNPNNPNPNPNNPNPNNPNPNPNNPNPNNPNPNPN
KPKNPKPKNPKPKKPKNPKPKNPKPKKPKNPKPKNPKPKKPKNPKPKNPKPKKPKNPKPKNPKPKKPKNP
NKKKPNKPKNKPPPNKPPNPNNNNPKPKPNKKNPNKKPNPNPKNKPPKKNNKPPKK...

output:

249

result:

ok 1 number(s): "249"

Test #18:

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

input:

32
NNKPNNNKPNNP
PNPPNPPNPPNPPNPK
PNP
NNPNNNPNNPNNNPNNPNNNPNNPN
P
NNPNNNPNNPNNNPNNPNNNPNNPNNNPNNK
NKNKNKNP
NNNNNNNNP
NPKNKNPKNKNPKNKNPKNKNPK
N
N
PPPPKP
N
KPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPKKPKPKPK...

output:

894

result:

ok 1 number(s): "894"

Test #19:

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

input:

300
PKK
KNP
PNPNPKPNPNPNPKPNPNPP
KNN
KPN
KNN
KKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNKKKNK
KKKN
...

output:

1120793

result:

ok 1 number(s): "1120793"

Test #20:

score: 0
Accepted
time: 103ms
memory: 21620kb

input:

45
PPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPPPPPPPPPKPP...

output:

2514

result:

ok 1 number(s): "2514"

Test #21:

score: 0
Accepted
time: 97ms
memory: 22064kb

input:

56
PNPPNPKNPNPPNPPNPKNPNPPNPPNPKN
NKN
PPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPKPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNPPPPPPPNPPPPPPPNPPPPPPNPPPPPPPNP...

output:

5856

result:

ok 1 number(s): "5856"

Test #22:

score: 0
Accepted
time: 88ms
memory: 22188kb

input:

55
K
PPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPPPNPKKPPPPPPPPPPPPPPPPKNPKNNPKPKPNPKKKKPKKPKKPPPP
PPNPPNPPPNPPNPPKPNPNPPNNNNK
KKKKKPPKKKKKPPKKKKKPPKKKKKNKKKKKPPKKKKKPPKKKKKPPKKKKKPPKKKKKNKKKKKPPKKKKKPPKKKKKPPKKKKKKKPPKKKK...

output:

5925

result:

ok 1 number(s): "5925"

Test #23:

score: 0
Accepted
time: 102ms
memory: 30516kb

input:

5000
PPK
PKN
NPK
KKN
PPN
NKK
NNP
KNK
KPP
NNP
NPP
KKN
NKK
KKK
PKN
NPP
PNK
NPK
KNP
PNP
KKN
NNK
PKK
PPP
KKN
NKP
KPK
KKK
PNK
PNK
NNK
KKP
KKK
NNK
PPP
PNP
PNP
KKN
NPN
PNK
NNK
PKK
PPN
KKP
PKK
NKP
KNP
PPK
NNK
PKP
PPN
KNP
PKK
NNN
KPP
KPN
KKN
PNP
NKK
KPP
NNN
NKP
NPK
NPP
PNN
NNK
KKP
PPP
NKP
KPN
KNN
PNN
NPP
KPP...

output:

5201172138

result:

ok 1 number(s): "5201172138"

Test #24:

score: 0
Accepted
time: 102ms
memory: 21672kb

input:

48
PPPNNPPKKNPKNNKKPKPKPPKNPPPKKPPNPNPKKPPPPPNPNPNPPPNPKPNPPPKKKNPKKPPPNPNNKKKKPKPPPPPPKPPNPKPNNPPPNPKKNPKNPPNKNNNNPNPNKNPKKKKNKNKKKPPNNKKKKNNPPNPNNNKNNPPKPPPKPKKKPPNNPNPKNKNPPPNNPPKKNPKNNKKPKPKPPKNPPPKKPPNPNPKKPPPPPNPNPNPPPNPKPNPPPKKKNPKKPPPNPNNKKKKPKPPPPPPKPPNPKPNNPPPNPKKNPKNPPNKNNNNPNPNKNPKKKKNKN...

output:

3732

result:

ok 1 number(s): "3732"

Test #25:

score: 0
Accepted
time: 95ms
memory: 22088kb

input:

31
PPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPPPPNPP...

output:

928

result:

ok 1 number(s): "928"

Test #26:

score: 0
Accepted
time: 102ms
memory: 22112kb

input:

67
KPNKKPNKKPNKKN
NP
KKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKKPKKKKKKKPKKKKKKK...

output:

10794

result:

ok 1 number(s): "10794"

Test #27:

score: 0
Accepted
time: 92ms
memory: 21788kb

input:

49
PNKPNKPNKPNKPNKPNNPNNNNNK
NPNNPNPNNPNPNNPNNPNPNNPNPNNPNPNNPNNPNPNNPNPNNPNNPNPNNPNPNNPNPNNPNNPNPNNPNPNNPNNP
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKP
N
PPPKPPPPKPPPPKPPPPKPPPPKPPPPK
PNKPNKPNKPNKPNKPNNPNNNNNKPNKPNKPNKPNKPNKPNNPNNNNNKPNKPNKPNKPNKPNKPNNPNNNNNKPNKP...

output:

2554

result:

ok 1 number(s): "2554"

Test #28:

score: 0
Accepted
time: 103ms
memory: 22108kb

input:

34
NNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNNPNNPNNPNNPNNPNNPNNNPNNPNNPN...

output:

938

result:

ok 1 number(s): "938"

Test #29:

score: 0
Accepted
time: 107ms
memory: 21744kb

input:

55
PPPPPPPPPPPPPPPKPPPPPPPPPPPPPPPPPKPPPPPPPPPPPPPPPKPPPPPPPPPPPPPPPPPKPPPPPPPPPPPPPPPN
NNNNNPNNNNNPNNNNNKNNNNNP
KPNKNPPKKNKNNKNPNKKPPNKKKKPPPPPNKKPNKPPKPPPPNPNNNNKKPNPKPKNKPKNKPPNPKKPKPPKPPKNKPPNKKPKKPPNPKKPPNPPNKKKNKPNKNPPKKNKNNKNPNKKPPNKKKKPPPPPNKKPNKPPKPPPPNPNNNNKKPNPKPKNKPKNKPPNPKKPKPPKPPKNKPPN...

output:

6093

result:

ok 1 number(s): "6093"

Test #30:

score: 0
Accepted
time: 90ms
memory: 21920kb

input:

19
NKNPNKNPNKNPNKNNKNPNKNPNKNPNKNNKNPNKNPNKNPNKNNKNP
PKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPKNPKPPKPPKKNKNPNPKPPKPPK...

output:

6

result:

ok 1 number(s): "6"

Test #31:

score: 0
Accepted
time: 90ms
memory: 21696kb

input:

13
NNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNKNNNK
KPKPKPKPKPKPKPKPKPKPKPKKKPKPKPKPKPKPKPKPKPKPKPKPKKKPKPKPKPKPKPKPKPKPKPKPKNNKPKPNPNNNNKKKKKKKNNNNPPPPKPK
NNKNNNKNNNKNNNKNNNKNNNKNN...

output:

4

result:

ok 1 number(s): "4"

Test #32:

score: -100
Time Limit Exceeded

input:

100000
KPKPNKPKKK
NKNPNKKPPP
NNKNPPNNKP
KPKPKPKNPN
NKPKKKKKPP
NKPNPKKPPP
NNKPNPKPNN
PPPKNNKNKN
KNNNNKKNKP
NNNKPKPKNN
PKPKNKPPPP
NKNPNPKPNP
KKPPPPKPKP
PNKKNKKKKK
PKKNNNKPKK
KKNPNPKKNK
NNKPKPPPPK
KPNKKPKKKK
PPNNKPKNKP
KPNNNPNNPN
NKKNKPNPPK
KKNNPNKPNP
KNNNPPPNNP
PNPNNNKKNK
NPKPNNPKKN
NNNPPPKKKP
PPPPNNN...

output:


result: