PAT乙級1059.C言語コンテスト-python
2508 ワード
文書ディレクトリ前言 1. タイトル 2. コード 前言
この問題は論理的に複雑なだけで、まじめに書いて、いくつかの条件を捨てないでください.この問題は素数で判断する必要があり、時間がかかりますが、pythonはもともと実行時間が長く、最後に私のコードには2つのタイムアウトがあります.私は気にしません.もっと良い方法があれば、批判を歓迎します.
1.テーマ
C言語コンテストは浙江大学コンピュータ学院が主宰した楽しいコンテストである.コンテストの主旨が面白いためである以上、授賞規則も滑稽に制定されています.チャンピオンは「謎の大賞」(例えば巨大な学生研究論文集......)を受賞する. 素数の学生は最高の賞品--黄色の人形を獲得します! 他の人はチョコレートを手に入れます.
与えられた試合の最終順位と一連の参加者のIDは、これらの参加者が獲得すべき賞品を与えなければなりません.入力フォーマット:最初の行に入力すると、正の整数N(⩽1 0 4)N(leqslant 10^4)N(⩽104)が与えられ、参加者数である.その後、N N N行は最終順位を与え、各行は順位順に1人の参加者のID(4桁の数字からなる)を与える.次に、正の整数K K K K及びK K K個のクエリを必要とするIDを与える. 出力フォーマット:クエリーするIDごとに、賞品または 入力サンプル:6 1111 6666 8888 1234 55550001 6 8888 0001 1111 2222 8888 2222 出力サンプル:8888:Minionbushaoyu 0001:Chocolate 1111:Mystery Award 2222:Are you kidding?8888: Checked 2222: Are you kidding?
2.コード
2つのタイムアウトがあったのか、素数を求めるときにタイムアウトしたのか推定します.
この問題は論理的に複雑なだけで、まじめに書いて、いくつかの条件を捨てないでください.この問題は素数で判断する必要があり、時間がかかりますが、pythonはもともと実行時間が長く、最後に私のコードには2つのタイムアウトがあります.私は気にしません.もっと良い方法があれば、批判を歓迎します.
1.テーマ
C言語コンテストは浙江大学コンピュータ学院が主宰した楽しいコンテストである.コンテストの主旨が面白いためである以上、授賞規則も滑稽に制定されています.
与えられた試合の最終順位と一連の参加者のIDは、これらの参加者が獲得すべき賞品を与えなければなりません.
ID:
(ミステリー大賞)、またはMystery Award
(小黄人)、またはMinion
(チョコレート)の1行にChocolate
が出力されます.調べたIDがランキングに入っていない場合は、Are you kidding?
を印刷します(私をからかっていますか?)このIDがすでに調べられている場合(賞品が受け取った場合)、ID:Checked
を印刷します(多く食べてはいけません).2.コード
2つのタイムアウトがあったのか、素数を求めるときにタイムアウトしたのか推定します.
def isPrem(n):
if n== 2: return True
for i in range(int(n/2))[2:]:
if n%i == 0:
return False
return True
N = int(input())
ID = []
check = []
for i in range(N):
tem = input()
ID.append(tem)
K = int(input())
for i in range(K):
tem = input()
if tem not in ID:
print(tem+": Are you kidding?")
else:
index = ID.index(tem)+1
if index not in check:
check.append(index)
if index == 1: print(tem+": Mystery Award")
elif isPrem(index): print(tem+": Minion")
else: print(tem+": Chocolate")
else:
print(tem+": Checked")
def isPrem(n):
if n== 2: return True
for i in range(int(n/2))[2:]:
if n%i == 0:
return False
return True
N = int(input())
ID = []
check = []
for i in range(N):
tem = input()
ID.append(tem)
K = int(input())
for i in range(K):
tem = input()
if tem not in ID:
print(tem+": Are you kidding?")
else:
index = ID.index(tem)+1
if index not in check:
check.append(index)
if index == 1: print(tem+": Mystery Award")
elif isPrem(index): print(tem+": Minion")
else: print(tem+": Chocolate")
else:
print(tem+": Checked")