STMASS - Khối lượng phân tử

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Hợp chất hữu cơ chỉ gồm các nguyên tố ~C, H, O~ có khối lượng nguyên tử lần lượt là ~12, 1~ và ~16~.

Người ta viết công thức phân tử của hợp chất hữu cơ ở dạng "nén", ví dụ COOHHH là CO2H3 hay CH(CO2H)(CO2H)(CO2H) là CH(CO2H)3. Nếu ở dạng nén thì số lần lặp là một số ~2 ≤ k ≤ 9~.

Cho công thức phân tử của một hợp chất hữu cơ, hãy tính khối lượng phân tử của nó.

Input

  • Dòng đầu ghi số nguyên ~T~ là số bộ test;
  • ~T~ dòng tiếp theo, mỗi dòng chứa một xâu ký tự biểu diễn công thức phân tử của hợp chất hữu cơ.

Giới hạn:

  • ~1 ≤ T ≤ 1000~; độ dài công thức của mỗi hóa chất không quá ~1000~.

Output

  • Gồm ~T~ dòng, mỗi dòng một số nguyên dương là khối lượng của hợp chất ở test tương ứng.

Sample

Input #1
3
COOH
CH(CO2H)3
((CH)2(OH2H)(CHO))3
Output #1
45
148
222

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    0988440189  đã bình luận lúc 21, Tháng 5, 2025, 13:34

    ý tưởng là các bạn tạo stack kiểu nguyên lưu khối lượng các phần tử con bên ngoài dấu() và bên trong ()

    -> gặp chữ cái C , H , O thì lưu tương ứng 12 , 1 , 16 ->gặp dấu ( thì phải lưu -1 như kiểu để đánh dấu để tý tính phần trong ngoặc chỉ cộng đến đoạn -1 thôi -> gặp dấu ) thì tính tổng đỉnh của ngăn xếp ( lấy ra rồi xóa ) + vào 1 thằng temp cho đến khi gặp -1 thì dừng , rồi xóa -1 (đang ở đỉnh ngăn xếp đi và thêm temp vào ) -> gặp số thì lấy thằng ở đỉnh ra nhân với số đấy => xóa đỉnh rồi thêm giá trị vừa nhân vào -> cuối cùng thoát ra vòng duyệt sâu bạn chỉ cần cộng các số trong stack lại với nhau là OKELA -> Đêm nay Mu đá chung kết C2 đấy HEHE