結果
| 問題 |
No.294 SuperFizzBuzz
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-12-09 19:35:34 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 859 bytes |
| コンパイル時間 | 1,521 ms |
| コンパイル使用メモリ | 76,456 KB |
| 実行使用メモリ | 554,204 KB |
| 最終ジャッジ日時 | 2024-09-15 05:53:57 |
| 合計ジャッジ時間 | 8,800 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 MLE * 1 |
| other | -- * 12 |
ソースコード
# -*- coding: utf-8 -*-
import sys,copy,math,heapq,itertools as it,fractions,re,bisect,collections as coll
def comb(n, r):
res = 1
for i in xrange(r):
res *= n - i
for i in xrange(1, r + 1):
res /= i
return res
ans = 0
N = int(raw_input())
#3は5n個、5は3m個。1桁目は必ず5
for k in xrange(3, 26):
s = 0
f = []
for i in xrange(3, k + 1, 3):
j = k - i
cnt = comb(j + i - 1, i - 1)
s += cnt
f.append(i)
if N > s:
N -= s
else:
tmp = []
for i in f:
j = k - i
for three in it.combinations(xrange(k - 1), j):
num = ["5"] * k
for l in three: num[l] = "3"
tmp.append(int("".join(num)))
tmp.sort()
ans = tmp[N - 1]
break
if ans > 0: break
print ans