結果

問題 No.1792 科学の甲子園
ユーザー gew1fw
提出日時 2025-06-12 18:47:01
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 2,027 ms / 4,000 ms
コード長 1,457 bytes
コンパイル時間 276 ms
コンパイル使用メモリ 82,476 KB
実行使用メモリ 77,396 KB
最終ジャッジ日時 2025-06-12 18:47:27
合計ジャッジ時間 21,612 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
from itertools import combinations

def main():
    input = sys.stdin.read().split()
    ptr = 0
    N = int(input[ptr])
    ptr += 1
    students = []
    for _ in range(N):
        M = int(input[ptr])
        I = int(input[ptr + 1])
        P = int(input[ptr + 2])
        C = int(input[ptr + 3])
        B = int(input[ptr + 4])
        E = int(input[ptr + 5])
        ptr += 6
        students.append((M, I, P, C, B, E))
    
    k = 15  # 调整k的值
    
    top_students = set()
    subjects = [0, 1, 2, 3, 4, 5]
    for subject in subjects:
        indexed = [(students[i][subject], i) for i in range(N)]
        indexed.sort(reverse=True, key=lambda x: x[0])
        for j in range(min(k, len(indexed))):
            top_students.add(indexed[j][1])
    
    top_students = list(top_students)
    m = len(top_students)
    if m < 4:
        print(0)
        return
    
    max_score = 0
    for group in combinations(top_students, 4):
        M_max = max(students[i][0] for i in group)
        I_max = max(students[i][1] for i in group)
        P_max = max(students[i][2] for i in group)
        C_max = max(students[i][3] for i in group)
        B_max = max(students[i][4] for i in group)
        E_max = max(students[i][5] for i in group)
        
        score = M_max * I_max * P_max * C_max * B_max * E_max
        if score > max_score:
            max_score = score
    
    print(max_score)

if __name__ == '__main__':
    main()
0