結果
問題 |
No.2198 Concon Substrings (COuNt-CONstruct Version)
|
ユーザー |
|
提出日時 | 2023-01-27 23:19:32 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,104 bytes |
コンパイル時間 | 226 ms |
コンパイル使用メモリ | 82,196 KB |
実行使用メモリ | 71,736 KB |
最終ジャッジ日時 | 2024-06-28 08:09:15 |
合計ジャッジ時間 | 13,607 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 88 WA * 16 |
ソースコード
from collections import * from itertools import * from functools import * from heapq import * import sys,math input = sys.stdin.readline M = int(input()) def fcr(n): ng = math.ceil(n**(1/3)) + 100 ok = math.ceil(n**(1/3)) - 100 while ng-ok>1: mid = (ng+ok)//2 if mid**3<=n: ok = mid else: ng = mid return ok if M <= 10**6: N = fcr(M) delta = M - N**3 if N**3+N > M: N -= 1 Y = N-1 Z = N W = N X = M - N**3 - N ans = ['c','o'] + ['n']*X + ['c']*Y + ['o']*Z + ['n']*W print(''.join(ans)) exit() N = fcr(M) for k in range(-1,2): W = N + k flg = False for i in range(-1000,1000): Z = N+i for j in range(-1000,1000): Y = N+j if (1< M - W*((Y+1)*Z+1) + W + Y + Z<=59998)&(M >= W*((Y+1)*Z+1)): flg = True break if flg: break if flg: break X = M - W*(Z*(Y+1)+1) ans = ['c','o'] + ['n']*X + ['c']*Y + ['o']*Z + ['n']*W print(''.join(ans))