Trong giai đoạn phân tích từ vựng, một token SỐ (dạng số thực có thể có phần mũ khoa học) hợp lệ phải khớp ĐÚNG TOÀN BỘ với biểu thức chính quy sau (viết theo cú pháp Python re):
(0|[1-9][0-9]*)(\backslash.[0-9]+)?([eE][+\-]?[0-9]+)?
Nói cách khác: phần nguyên không được có số 0 ở đầu trừ khi bản thân nó là 0; phần thập phân (nếu có) bắt đầu bằng dấu chấm và có ít nhất một chữ số; phần mũ (nếu có) bắt đầu bằng e hoặc E, có thể có dấu +/-, theo sau bởi ít nhất một chữ số.
Cho n token ứng viên (mỗi token là một chuỗi không chứa khoảng trắng), với MỖI token hãy:
%.6f). Nếu giá trị vượt quá khả năng biểu diễn của số thực (tràn số, cho ra vô cực), in ra ERROR.ERROR.Ví dụ: với n=6 và các token 007, 3.14, 1e10, 0, 1.5e-3, 12., kết quả lần lượt là: 007 không hợp lệ (số 0 đứng đầu) → ERROR; 3.14 → 3.140000; 1e10 → 10000000000.000000; 0 → 0.000000; 1.5e-3 → 0.001500; 12. không hợp lệ (thiếu chữ số sau dấu chấm) → ERROR.
Dòng đầu tiên chứa số nguyên n (0≤n≤1000). n dòng tiếp theo (nếu n=0 thì không có dòng nào), mỗi dòng chứa đúng một token ứng viên (một chuỗi không chứa khoảng trắng, độ dài không quá 100 ký tự).
In ra n dòng theo đúng thứ tự token đầu vào, mỗi dòng là kết quả tương ứng (ERROR hoặc giá trị đã định dạng với 6 chữ số thập phân) như mô tả ở trên. Nếu n=0, không in gì cả.
Ví dụ:
Đầu vào:
6
007
3.14
1e10
0
1.5e-3
12.
Đầu ra:
ERROR
3.140000
10000000000.000000
0.000000
0.001500
ERROR
Đầu vào:
0
Đầu ra:
Đang tải editor...