# 109 學年度商業類學生技藝競賽 題目出處:[點擊](https://sci.me.ntnu.edu.tw/Contest/down?f_id=36344&c_Fileclass=2&ActionName=HistoryQuestionsList) # pA. 找出最大和第二大的數字 ```python= for _ in range(int(input())): l=[int(i) for i in input().split()] l.sort(reverse=True) print(*l[0:2]) ``` # pB. 打印機 ```python= for _ in range(int(input())): n=list(input()) a='' b='' for i in range(len(n)): if n[i]=='4': a+='3' b+='1' else: a+=n[i] b+='0' print(a,int(b)) ``` # pC. 時間計算 ```python= import datetime for _ in range(int(input())): d,m,y=[int(i) for i in input().split('/')] a=datetime.date(y,m,d) d,m,y=[int(i) for i in input().split('/')] b=datetime.date(y,m,d) print(a.year-b.year-((a.month,a.day)<(b.month,b.day))) ``` # pD. 數字相乘 ```python= for _ in range(int(input())): n = int(input()) ans = [] i = 9 while i >= 2: if not(n%i): n //= i ans.append("%d"%(i)) continue i -= 1 if n == 1: print("".join(ans[::-1])) else: print(-1) ``` # pE. 迴文 ```python= for _ in range(int(input())): n=input() while int(n)<4294967295: if n==n[::-1]: print(n) break else: n=str(int(n)+int(n[::-1])) ``` # pF. 最大子數列問題 $$ dp[i]=max(l[i],dp[i-1]+l[i]) $$ ```python= for _ in range(int(input())): l=[int(i) for i in input().split()] dp=[l[0]] for i in range(1,len(l)): dp.append(max(l[i],dp[i-1]+l[i])) print(max(dp)) ``` # pG. 錄音帶 ```python= from bisect import bisect_right while True: try: num = [int(i) for i in input().split()] target, num = num[0], num[2::] n = {0} for i in num: n.update([j+i for j in n]) if target in n: print(target) else: n = list(n) print(n[bisect_right(n, target)-1]) except EOFError: break ``` # pH. 特殊郵件 ```python= from collections import defaultdict def BFS(i): head = 0 q = [i] seen = set() seen.add(i) while head < len(q): node = q[head]; head += 1 for j in d[node]: if j not in seen: q.append(j) seen.add(j) return len(seen) for _ in range(int(input())): n = int(input()) h = [0]*(n+1) d = defaultdict(list) for _ in range(n): a, b = map(int, input().split()) d[a].append(b) for i in range(1, n+1): h[i] = BFS(i) print(h.index(max(h))) ```