def calculateGrade(mark):
    if mark >= 90:
        return ("Ex",10)
    elif mark >= 80:
        return ("A",9)
    elif mark >= 70:
        return ("B",8)
    elif mark >= 60:
        return ("C",7)
    elif mark >= 50:
        return ("D",6)
    elif mark >= 40:
        return ("P",5)
    else: return ("F",0)

class Student:
    def __init__(self):

        self.name = ""
        self.marks = []
        self.average = 0
        self.grade = []
        self.credit = []

    def setName(self, name):
        self.name = name
    
    def setMarks(self,marks):
        self.marks = marks
    
    def setCredits(self,credit):
        self.credit = credit

    def changeMarks(self, subject, mark):
        if subject >=1 and subject <= len(self.marks):
            self.marks[subject] = mark
        else:
            print("Subject not found!!!")
        
    def averageMarks(self):
        total = 0
        subjects = len(self.marks)
        if subjects == 0:
            return 0
        for mark in self.marks:
            total = total + mark
        
        self.average = total/subjects

        return self.average
    
    def grades(self):
        for mark in self.marks:
            self.grade.append(calculateGrade(mark))
        
        return self.grade

    def SGPA(self):
        sgpa = 0
        totalCredit = 0
        for i in range(0,len(self.credit)):
            sgpa = sgpa + (self.credit[i] * self.grade[i][1])
            totalCredit = totalCredit + self.credit[i]
        
        if totalCredit == 0:
            return 0
        return sgpa/totalCredit

    def printInfo(self):
        print("Name:",self.name)
        print("Average Marks:",self.average)

name = input("Enter the name of the student: ")
n = int(input("Enter the number of subjects: "))
print("Enter the marks for each subject")
marks = []
for i in range(0,n):
    a = int(input(f"Enter the mark for subject {i+1}: "))
    marks.append(a)

print("Enter the credit for each subject")
credit = []
for i in range(0,n):
    a = int(input(f"Enter the credit for subject {i+1}: "))
    credit.append(a)

student1 = Student()
student1.setName(name)
student1.setMarks(marks)
student1.setCredits(credit)

print(f"The average marks obtained by {student1.name} is {student1.averageMarks()}")
print(f"The grades obtained by {student1.name} in each subject")
Grade = student1.grades()
sbj = 1
for grade,gradePoint in Grade:
    print(f"Subject {sbj}: [ Grade: {grade}, Grade Point: {gradePoint} ]")
    sbj = sbj + 1

print(f"SGPA: {student1.SGPA()}")

student1.printInfo()