QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#91085 | #6126. Sequence and Sequence | hos_lyric | AC ✓ | 2277ms | 77956kb | Python3 | 2.1kb | 2023-03-27 06:54:25 | 2023-03-27 06:54:39 |
Judging History
answer
from math import *
def Sum(n):
return n * (n + 1) // 2
def P(n):
if (n <= 0):
return 0
a = (isqrt(8 * n + 9) - 1) // 2 - 1
while True:
b = n - (Sum(a) - 1)
if (1 <= a and 1 <= b and b <= a+1):
return a
a += 1
M = 3 * 10**5
qs = [0 for i in range(M + 1)]
rs = [0 for i in range(M + 1)]
ss = [0 for i in range(M + 1)]
ts = [0 for i in range(M + 1)]
qs[1] = 1
for i in range(2, M + 1):
qs[i] = qs[i - 1] + qs[P(i)]
for i in range(1, M + 1):
rs[i] = rs[i - 1] + (1 + i) * qs[i]
ss[i] = ss[i - 1] + ((1 + i) * (-24 + 14*i + 19*i**2 + 12*i**3 + 3*i**4) // -24) * qs[i]
ts[i] = ts[i - 1] + ((1 + i) * (107520 - 73344*i - 99136*i**2 - 52904*i**3 + 18324*i**4 + 58690*i**5 + 63635*i**6 + 47320*i**7 + 25025*i**8 + 9450*i**9 + 2485*i**10 + 420*i**11 + 35*i**12) // 107520) * qs[i]
def T(n):
if (n <= 0):
return 0
# print("T", n)
if (n <= M):
return ts[n]
raise Exception
def S(n):
if (n <= 0):
return 0
if (n <= M):
return ss[n]
a = P(n)
u = Sum(a) - 1
b = n - u
# print("S", n, a, b)
return T(a - 1) + (n*(3+n)*(-2+3*n+n**2)*(8+3*n+n**2)//-48) * R(a - 1) + (b * (1+b) * (-1024 + 30*b**5 + 280*u + 2170*u**2 + 1785*u**3 + 700*u**4 + 105*u**5 + 25*b**4 * (10 + 7*u) + 2*b**3 * (407 + 595*u + 210*u**2) + b**2 * (1286 + 2975*u + 2205*u**2 + 525*u**3) + b * (324 + 3220*u + 3815*u**2 + 1925*u**3 + 350*u**4)) // -1680) * Q(a)
def R(n):
if (n <= 0):
return 0
if (n <= M):
return rs[n]
a = P(n)
u = Sum(a) - 1
b = n - u
# print("R", n, a, b)
return S(a - 1) + (n*(3+n)//2) * R(a - 1) + (b*(1+b)*(4+2*b+3*u)//6) * Q(a)
def Q(n):
if (n <= 0):
return 0
if (n <= M):
return qs[n]
a = P(n)
u = Sum(a) - 1
b = n - u
# print("Q", n, a, b)
return R(a - 1) + b * Q(a)
# for n in range(22):
# print(n, P(n), Q(n), R(n))
numCases = int(input())
for caseId in range(numCases):
N = int(input())
print(Q(N))
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1983ms
memory: 77940kb
input:
4 10 100 1000 987654321123456789
output:
30 2522 244274 235139898689017607381017686096176798
result:
ok 4 lines
Test #2:
score: 0
Accepted
time: 2099ms
memory: 77900kb
input:
10000 613939207402503646 408978283345333197 976677512231308716 629053280913850466 148712339 236220313279945487 590396556995977994 9226 215693877607285701 649702683896705 343173887453826567 847003949499596615 867133040287550291 159928123569892354 864534948175618654 209739383170746721 4295456752378791...
output:
91030728117067063595428375419346402 40469246710473908695676971059074376 229951682342450470520349294486964970 95558039501640054006660579352994194 5418340556433412 13536357243714243974772906966693552 84197207203086091733385317631619504 20934656 11291075621624104092841708040651034 104019777231815308683...
result:
ok 10000 lines
Test #3:
score: 0
Accepted
time: 2037ms
memory: 77892kb
input:
1000 6403632579734162001008235137760132245297 1307698664787972023762442022139627469666 668870338048562416595095770565441759482 5092270 8806864498496723812760785099973409980711 2178464116010775202899984038946879469187 204381824371 8638495456004772442511643693521120926431 45954412333082528168092594892...
output:
9822905445826021159291522774438593145331066315784567505849706373529921001845336 409552844852728078841401625660602682494169687360338453221088647649526339235330 107160056181509722327918304399871120167096186888511567354513496578559803370274 6354453295964 185817323129718525790559571287806776421589155460...
result:
ok 1000 lines
Test #4:
score: 0
Accepted
time: 2036ms
memory: 77884kb
input:
2000 2587627816607030340103003175959756184662 7728753705064569253253827797978613582938 6507847628603052973674714721 6989857636824717968431061258300652290539 4734281027640913533293237760425416005062 9411123735455625690768098631226366597446 8309753930995253536640660321476246470149 63565157427098067709...
output:
1603610451790269237852635641930301658193367441164307312552842461667027137613454 14309943493171496191506053530749878345271155973702143153225815632926701434642842 10414697803791950572309383355053080338229465674803757518 11704102206894264239190418551798088411458157423624785417336589284698838535371266 5...
result:
ok 2000 lines
Test #5:
score: 0
Accepted
time: 2176ms
memory: 77952kb
input:
5000 6701025283447923273597553918313900029215 1618190467906965189844764312914748628527 2135261797018456059451326428589353332126 8027429917075086154217136768450383650445 8263301530632040969183919589286944799002 376886964626613356031779878 1191561726595055348898524031899625958102 453561433135467095374...
output:
10756647971303093856509780939435968749671842310025383400207261624750784751725876 627115945498078452730193858129037650151913122482133071938783012929533045529940 1091921493223233296724616654299408127388059493196845968361252389122720100379070 154375707400033063668088306493199269136326791073281723548116...
result:
ok 5000 lines
Test #6:
score: 0
Accepted
time: 2277ms
memory: 77956kb
input:
10000 260865660295317278841 5232352637620496342310336202478387251106 7108789244285764135987032973912918380 12766535319519586095540974948550152061 5138306300154916887884637635208203681949 7603163140266839847784708214115317398585 149590294591155205497765668766786424787 63283557694500045989299147454323...
output:
16323111740957704392106241109891718054228 6557703685144914472554701877112177422100848067214049191882271294010013621817762 12143115079716078114619105501427985631361994195400195527663921137836417758 39139456824156526604158618001888125076786817219954316014947704612553450312 6324051018379978443719363340...
result:
ok 10000 lines