結果
問題 |
No.1792 科学の甲子園
|
ユーザー |
![]() |
提出日時 | 2025-05-14 13:04:30 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 3,152 bytes |
コンパイル時間 | 273 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 75,648 KB |
最終ジャッジ日時 | 2025-05-14 13:06:31 |
合計ジャッジ時間 | 6,871 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 TLE * 1 -- * 17 |
ソースコード
import sys import itertools # Function to solve the problem def solve(): # Read the number of students N from standard input. N = int(sys.stdin.readline()) # Read the aptitude values for each student. # Store the student data as a list of lists, where each inner list contains # the 6 aptitude values for one student. students = [] for i in range(N): # Read a line, split it into space-separated values, convert them to integers, # and append the resulting list of 6 integers to the students list. students.append(list(map(int, sys.stdin.readline().split()))) # Initialize the variable to keep track of the maximum score found so far. # Start with 0, as scores are products of positive integers and will be >= 1. max_score = 0 # Generate all possible combinations of 4 distinct student indices from the range [0, N-1]. # itertools.combinations is an efficient way to generate combinations. # It takes an iterable (here, range(N)) and the size of combinations (here, 4). # It yields tuples, each containing 4 distinct indices in increasing order. for team_indices in itertools.combinations(range(N), 4): # For each combination of 4 students (a potential team): # Calculate the score for the current team. Initialize the score to 1. # The score is the product of maximum aptitudes over all subjects. current_score = 1 # Iterate through each of the 6 subjects (indexed 0 to 5). for subject in range(6): # Find the maximum aptitude value for the current subject among the selected 4 students. max_subj_score = 0 # Initialize the max score for this subject within the team. # Iterate through the indices of the students in the current team combination. for student_idx in team_indices: # Access the aptitude value of the student 'student_idx' for the current 'subject'. # students[student_idx] gets the list of scores for the student. # students[student_idx][subject] gets the score for the specific subject. # Update max_subj_score if the current student's score is higher. max_subj_score = max(max_subj_score, students[student_idx][subject]) # Multiply the team's total score by the maximum aptitude found for this subject. # Since all aptitude values are guaranteed to be at least 1, the maximum aptitude # for any subject will also be at least 1. Thus, current_score will remain positive. current_score *= max_subj_score # After calculating the total score for the current team, compare it with the # overall maximum score found so far (max_score). Update max_score if the # current team's score is greater. max_score = max(max_score, current_score) # After checking all possible teams of 4 students, print the overall maximum score found. print(max_score) # Call the solve function to execute the main logic of the program. solve()