아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

아미노산

시간 제한1초메모리 제한64 MB

요약
각 화학식을 원소 개수로 해석해 분자량을 출력하고 다른 원소가 있으면 Invalid formula를 출력합니다.
난이도

쉬움10점 중 2점

유형
문자열, 구현
정답자
아직 제출이 없습니다

문제

우리 몸은 생물학적 작용에 필수적인 단백질로 이루어져 있다. 단백질을 건물이라고 하면 아미노산은 그 건물을 쌓는 벽돌이다. 근육과 세포 조직 대부분이 아미노산이고, 세포를 조직화하는 등 신체에서 중요한 기능을 한다. 아미노산의 핵심 원소는 탄소(C), 수소(H), 산소(O), 질소(N), 황(S)이다.

아미노산의 화학식을 읽어 분자량을 계산하는 프로그램을 작성하자.

예를 들어 알라닌의 화학식은 O2C3NH7이고, 산소 2개, 탄소 3개, 질소 1개, 수소 7개로 이루어져 있다. 원소 기호 뒤에 붙은 숫자가 그 원소의 개수이고, 숫자가 없으면 1개다.

원소별 원자량은 다음과 같다.

  • 산소(O) 15.9994
  • 탄소(C) 12.011
  • 수소(H) 1.00794
  • 황(S) 32.066
  • 질소(N) 14.00674

그러면 알라닌의 분자량은 이렇게 계산한다.

2×15.9994+3×12.011+1×14.00674+7×1.00794=89.094122 \times 15.9994 + 3 \times 12.011 + 1 \times 14.00674 + 7 \times 1.00794 = 89.09412

같은 방법으로 메티오닌 C5H11NO2S의 분자량은 149.21388이다.

입력

첫 줄에 테스트 케이스의 개수 nn (1≤n≤1001 \le n \le 100)이 주어진다. 이어지는 nn개의 줄에 아미노산의 화학식이 한 줄에 하나씩 주어진다. 화학식은 원소 기호를 나타내는 영문자와 개수를 나타내는 숫자로 이루어지고, 길이는 100자 미만이다. 같은 원소가 한 화학식에 여러 번 나올 수 있고, C, H, O, N, S가 아닌 문자가 섞여 있을 수도 있다.

출력

화학식마다 한 줄씩, 아미노산의 분자량을 소수점 아래 다섯째 자리에서 반올림해 넷째 자리까지 출력한다. 같은 원소가 여러 번 나오면 그 개수를 모두 더한다. 화학식에 C, H, O, N, S가 아닌 문자가 들어 있으면 그 줄에는 Invalid formula를 출력한다.

예제1

  1. 예제 1

    입력
    6
    S
    O2C3NH7
    C2H5NO2
    C5H11NO2S
    C6N14N2O2
    OX
    
    예상 출력
    32.0660
    89.0941
    75.0672
    149.2139
    328.1726
    Invalid formula