Tách số khỏi văn bản
Xem dạng PDF📖 Bài giảng & lời giải: đây là Bài tập 8 trong bài giảng Chuyên đề nhập môn 7: File và nhập xuất nhanh trên blog Lập trình thuật toán – có lý thuyết, mô phỏng từng bước, gợi ý và code C++ / Python.
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới xem gợi ý và lời giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
📂 Lưu ý về đọc/ghi file: trên blog, bài này dùng để luyện đọc dữ liệu từ file và ghi kết quả ra file (kiểu
BAI1.INP/BAI1.OUTnhư trong kỳ thi HSG). Trên ClueOJ, chương trình của em phải đọc dữ liệu từ bàn phím (stdin) và in kết quả ra màn hình (stdout), không cần mở file nào. Em có thể dùng mẹo trong bài giảng: chỉ gọifreopenkhi mở được file, ví dụif(fopen("BAI1.INP", "r")){ freopen("BAI1.INP", "r", stdin); freopen("BAI1.OUT", "w", stdout); }, để cùng một bài nộp chạy được cả ở phòng thi lẫn trên ClueOJ.
Dữ liệu vào là một đoạn văn bản gồm nhiều dòng (đọc tới hết dữ liệu). Một số là một dãy các chữ số liên tiếp dài nhất có thể; nếu ký tự đứng ngay trước dãy chữ số đó là dấu - thì đó là số âm, ngược lại là số không âm. Các chữ số $0$ ở đầu không ảnh hưởng tới giá trị.
Ví dụ: a-12b chứa số $-12$; 3-5 chứa hai số $3$ và $-5$; --7 chứa số $-7$; x=-0005 chứa số $-5$; dấu - ở cuối một dòng không ảnh hưởng tới số ở đầu dòng sau (vì ngay trước số đó là dấu xuống dòng).
Hãy đếm số lượng số trong văn bản và tính tổng của chúng.
Dữ liệu vào
Đoạn văn bản gồm các ký tự ASCII in được, dấu xuống dòng (\n hoặc \r\n), tổng cộng không quá $10^6$ ký tự. Mỗi số có không quá $9$ chữ số.
Kết quả
- Dòng 1: số lượng số.
- Dòng 2: tổng của các số (nếu không có số nào thì in $0$).
Sample Input
Lop 9A co 35 hoc sinh, nhiet do -2 do.
Nam 2026: diem 8-9
Sample Output
6
2067
Bình luận