Nguồn đề bài: http://www.spoj.com/PTIT/problems/P153PROG/
Nội dung bài viết
1. Đề bài P153PROG PTIT spoj
Tí đang ngồi học toán nhưng thấy chán quá nên ngồi viết ra các số tự nhiên từ 1 tới n và để tăng phần thú vị, đầu tiên, Tí viết các số lẻ trong n số theo thứ tự tăng dần từ trái qua phải ra trước rồi viết tất cả các số chẵn cũng theo thứ tự tăng dần ra sau.
Sau đó Tí đố tèo biết được giá trị của số thứ k trong dãy số mà Tí vừa viết. Tèo bí quá đành nhờ các bạn giúp vậy.
Input
Một dòng duy nhất chứa 2 số nguyên n và k (1 <= k <= n <= 10^12).
Output
Giá trị của số thứ k.
Example
Test 1:
Input:
10 3
Output:
5
Test 2:
Input:
7 7
Output:
6
2. Hướng dẫn P153PROG PTIT spoj
– đếm số lượng số chẳn và số lượng số lẻ trong đoạn [1..n].
– dễ dàng tìm được trường hợp sau:
nếu K>số lượng số lẻ thì kết quả sẽ là một số chẳn và số đó là ” |số lượng số lẻ – K|*2 “.
trường hợp ngược lại thì kết quả sẽ là một số lẻ, dễ dàng tìm được công thức “ k*2 – 1 ”
3. code tham khảo P153PROG PTIT spoj
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | const fi=''; var f:text; K,N,slchan,slle:int64; begin assign(f,fi); reset(f); readln(f,n,k); close(f); if n mod 2=0 then begin slle:=n div 2; slchan:=n div 2; end else begin slle:=n div 2 +1; slchan:=n div 2; end; if k>slle then writeln(abs(slle-k)*2) else writeln(k*2-1); end. |
Bài viết liên quan
- P153PROI PTIT spoj – Mã hóa xâu
- P152PROF PTIT spoj – ROUND 2F – Min max
- P151PROG spoj PTIT – Xếp Hàng
- PTIT016E spoj PTIT – ACM PTIT 2016 E – Kỳ thi ACM/ICPC
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156SUMH spoj PTIT – ROUND 6H – Kim cương
- PTIT013K spoj PTIT – SỐ NGUYÊN HỆ CƠ SỐ ACM
- P147PROB spoj PTIT – Pha nước cam
- P141PROB spoj PTIT – Tuần lễ công dân
- BCTHIDAU spoj PTIT – Thi đấu