結果
| 問題 |
No.2073 Concon Substrings (Swap Version)
|
| コンテスト | |
| ユーザー |
buey_t
|
| 提出日時 | 2023-03-15 17:30:46 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 226 ms / 2,000 ms |
| コード長 | 2,521 bytes |
| コンパイル時間 | 265 ms |
| コンパイル使用メモリ | 82,308 KB |
| 実行使用メモリ | 118,824 KB |
| 最終ジャッジ日時 | 2024-09-18 08:49:18 |
| 合計ジャッジ時間 | 8,798 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 37 |
ソースコード
def main():
try:
import pypyjit
pypyjit.set_param('max_unroll_recursion=-1')
except:
pass
try:
import sys
sys.setrecursionlimit(10**7)
except:
pass
from math import sqrt,sin,cos,tan,ceil,radians,floor,gcd,exp,log,log10,log2,factorial,fsum
from heapq import heapify, heappop, heappush
from bisect import bisect_left, bisect_right
from copy import deepcopy
import copy
import random
from collections import deque,Counter,defaultdict
from itertools import permutations,combinations
from decimal import Decimal,ROUND_HALF_UP
#tmp = Decimal(mid).quantize(Decimal('0'), rounding=ROUND_HALF_UP)
from functools import lru_cache, reduce
#@lru_cache(maxsize=None)
from operator import add,sub,mul,xor,and_,or_,itemgetter
INF = 10**18
mod1 = 10**9+7
mod2 = 998244353
#DecimalならPython
'''
これもスワップか
3で割った余りみたいなのが大事そう
回数の最小値はいらないから
%3 = 0
%3 = 1
%3 = 2
でc,o,nの数数えて
それの最小のやつ
concononc で落ちる
猶予がないとダメって感じか
'''
N = int(input())
S = list(input())
c0 = 0
o0 = 0
n0 = 0
for i in range(0,3*N,3):
if S[i] == 'c':
c0 += 1
elif S[i] == 'o':
o0 += 1
elif S[i] == 'n':
n0 += 1
c1 = 0
o1 = 0
n1 = 0
for i in range(1,3*N,3):
if S[i] == 'c':
c1 += 1
elif S[i] == 'o':
o1 += 1
elif S[i] == 'n':
n1 += 1
c2 = 0
o2 = 0
n2 = 0
for i in range(2,3*N,3):
if S[i] == 'c':
c2 += 1
elif S[i] == 'o':
o2 += 1
elif S[i] == 'n':
n2 += 1
a = min(c0,o1,n2)
b = min(o0,n1,c2)
c = min(n0,c1,o2)
if a>0 and (b==c==0):
print(a)
elif b>0 and (c==a==0):
if b*3+2 > 3*N:
print(b-1)
else:
print(b)
elif c>0 and (a==b==0):
if c*3+1>3*N:
print(c-1)
else:
print(c)
else:
if (a+b+c)*3+2 > 3*N:
print(a+b+c-1)
else:
print(a+b+c)
if __name__ == '__main__':
main()
buey_t