trang chủ / đề bài / roundgrade

Điểm số kỳ lạ của Efim

Đề bài

Mô tả

Efim vừa nhận được điểm bài kiểm tra cuối kỳ. Điểm số của cậu là một số thập phân dương bất kỳ, chẳng hạn 10.245, và Efim thấy con số này chưa đủ đẹp.

May mắn thay, cậu có một mẹo nhỏ. Trong mỗi giây, Efim có thể nhờ thầy giáo làm tròn điểm số tại một vị trí tùy ý sau dấu chấm thập phân (hoặc làm tròn đến số nguyên gần nhất). Giờ ra chơi chỉ còn t giây nữa là hết, nên Efim phải hành động thật nhanh.

Quy tắc làm tròn ở đây là quy tắc thông thường: khi làm tròn tại chữ số thứ k sau dấu chấm, ta xét chữ số thứ k+1. Nếu chữ số đó nhỏ hơn 5 thì chữ số thứ k được giữ nguyên, còn nếu nó lớn hơn hoặc bằng 5 thì chữ số thứ k được tăng thêm 1 (việc này có thể kéo theo nhớ sang các chữ số phía trước). Trong cả hai trường hợp, mọi chữ số đứng sau vị trí thứ k đều bị xóa bỏ. Làm tròn đến số nguyên gần nhất tương ứng với k=0.

Ví dụ, làm tròn 1.14 tại chữ số thập phân thứ nhất cho kết quả 1.1, làm tròn 1.5 đến số nguyên gần nhất cho kết quả 2, còn làm tròn 1.299996121 tại chữ số thập phân thứ năm cho kết quả 1.3.

Efim không bắt buộc phải dùng hết t giây, thậm chí cậu có thể không làm tròn lần nào. Hãy giúp Efim tìm điểm số lớn nhất mà cậu có thể đạt được sau không quá t lần làm tròn.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n và t: độ dài xâu biểu diễn điểm số của Efim (tính cả dấu chấm thập phân) và số giây còn lại.
  • Dòng thứ hai chứa xâu biểu diễn điểm số đó.

Dữ liệu ra

In ra điểm số lớn nhất mà Efim có thể đạt được. Kết quả không được chứa chữ số 0 thừa ở cuối: nếu sau khi làm tròn phần thập phân không còn chữ số nào thì chỉ in ra phần nguyên.

Ràng buộc

  • 1≤n≤2·105
  • 1≤t≤109
  • Điểm số là một số dương, có ít nhất một chữ số sau dấu chấm thập phân, và chữ số cuối cùng của nó khác 0.

Ví dụ

Input Output Giải thích
6 1
10.245
10.25 Với một giây, lựa chọn tốt nhất là làm tròn tại chữ số thập phân thứ hai: chữ số thứ ba là 5 nên chữ số 4 được tăng lên thành 5.
6 2
10.245
10.3 Sau khi thu được 10.25 ở giây đầu tiên, giây thứ hai làm tròn tại chữ số thập phân thứ nhất cho 10.3. Lưu ý đáp án 10.30 bị coi là sai.
3 100
9.2
9.2 Mọi lần làm tròn đều chỉ làm điểm số giảm đi, nên chiến lược tối ưu là không làm tròn lần nào, dù còn thừa rất nhiều giây.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0