Submission #73322291


Source Code Expand

import sys

def solve():
    input = sys.stdin.read
    data = input().split()
    iterator = iter(data)

    MAX_A = 10000001
    MOD = 998244353

    spf = list(range(MAX_A))
    for i in range(2, int(MAX_A**0.5) + 1):
        if spf[i] == i:
            for j in range(i * i, MAX_A, i):
                if spf[j] == j:
                    spf[j] = i

    try:
        t_str = next(iterator)
        T = int(t_str)
    except StopIteration:
        return

    out = []

    for _ in range(T):
        N = int(next(iterator))
        A = [int(next(iterator)) for _ in range(N)]

        primes = {} 
        
        objects = []
        
        for x in A:
            local_map = {}
            while x > 1:
                p = spf[x]
                cnt = 0
                while x % p == 0:
                    x //= p
                    cnt += 1
                local_map[p] = cnt
                
                if p not in primes:
                    primes[p] = [cnt, 0, 1]
                else:
                    rec = primes[p]
                    if cnt > rec[0]:
                        rec[1] = rec[0]
                        rec[0] = cnt
                        rec[2] = 1
                    elif cnt == rec[0]:
                        rec[2] += 1
                    elif cnt > rec[1]:
                        rec[1] = cnt
            objects.append(local_map)

        base_lcm = 1
        for p, (mx, mx2, c) in primes.items():
            base_lcm = base_lcm * pow(p, mx, MOD) % MOD

        ans = []
        for i in range(N):
            val = base_lcm
            for p, cnt in objects[i].items():
                rec = primes[p]
                if cnt == rec[0] and rec[2] == 1:
                    inv = pow(pow(p, rec[0] - rec[1], MOD), MOD - 2, MOD)
                    val = val * inv % MOD
            ans.append(str(val))
        
        out.append(" ".join(ans))

    print("\n".join(out))

if __name__ == '__main__':
    solve()

Submission Info

Submission Time
Task E - Many LCMs
User totukawa
Language Python (CPython 3.13.7)
Score 0
Code Size 2043 Byte
Status TLE
Exec Time > 2000 ms
Memory 500100 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 475
Status
AC × 1
AC × 6
TLE × 19
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, 01_large_t_01.txt, 01_large_t_02.txt, 01_large_t_03.txt, 02_large_n_01.txt, 02_large_n_02.txt, 02_large_n_03.txt, 03_prime_01.txt, 03_prime_02.txt, 03_prime_03.txt, 03_prime_04.txt, 03_prime_05.txt, 03_prime_06.txt, 04_small_prime_factor_01.txt, 04_small_prime_factor_02.txt, 04_small_prime_factor_03.txt, 04_small_prime_factor_04.txt, 04_small_prime_factor_05.txt, 04_small_prime_factor_06.txt, 05_large_value_01.txt, 05_large_value_02.txt, 05_large_value_03.txt, 05_large_value_04.txt, 05_large_value_05.txt, 05_large_value_06.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1407 ms 401104 KiB
01_large_t_01.txt TLE > 2000 ms 417660 KiB
01_large_t_02.txt TLE > 2000 ms 418960 KiB
01_large_t_03.txt TLE > 2000 ms 419616 KiB
02_large_n_01.txt TLE > 2000 ms 442060 KiB
02_large_n_02.txt TLE > 2000 ms 453300 KiB
02_large_n_03.txt TLE > 2000 ms 483768 KiB
03_prime_01.txt AC 1970 ms 423084 KiB
03_prime_02.txt TLE > 2000 ms 493156 KiB
03_prime_03.txt TLE > 2000 ms 493048 KiB
03_prime_04.txt TLE > 2000 ms 493260 KiB
03_prime_05.txt TLE > 2000 ms 462060 KiB
03_prime_06.txt TLE > 2000 ms 462100 KiB
04_small_prime_factor_01.txt TLE > 2000 ms 418032 KiB
04_small_prime_factor_02.txt AC 1967 ms 480312 KiB
04_small_prime_factor_03.txt AC 1985 ms 480492 KiB
04_small_prime_factor_04.txt AC 1901 ms 480460 KiB
04_small_prime_factor_05.txt TLE > 2000 ms 421668 KiB
04_small_prime_factor_06.txt TLE > 2000 ms 421668 KiB
05_large_value_01.txt TLE > 2000 ms 419256 KiB
05_large_value_02.txt AC 1924 ms 423052 KiB
05_large_value_03.txt TLE > 2000 ms 485128 KiB
05_large_value_04.txt TLE > 2000 ms 500100 KiB
05_large_value_05.txt TLE > 2000 ms 420184 KiB
05_large_value_06.txt TLE > 2000 ms 462536 KiB