Tôi đang tìm kiếm trên web và tôi đã tìm thấy Google Code Jam Puzzle này. Tôi thực sự thích nó vì vậy tôi quyết định đăng nó ở đây.
Trò chơi xổ số mới
Xổ số đang thay đổi! Xổ số đã từng có một máy để tạo ra một số trúng ngẫu nhiên. Nhưng do vấn đề gian lận, Xổ số đã quyết định thêm một máy khác. Số chiến thắng mới sẽ là kết quả của hoạt động bitwise-AND giữa hai số ngẫu nhiên được tạo bởi hai máy.
Để tìm bitwise-AND của X và Y , hãy viết cả hai ở dạng nhị phân; thì một bit trong kết quả trong nhị phân có 1 nếu các bit tương ứng của X và Y đều là 1 và 0 khác. Trong hầu hết các ngôn ngữ lập trình, các Bitwise-AND của X và Y được viết X & Y .
Ví dụ: Máy cũ tạo số 7 = 0111 . Máy mới tạo số 11 = 1011 . Số trúng sẽ là (7 VÀ 11) = (0111 VÀ 1011) = 0011 = 3 .
Với biện pháp này, Xổ số dự kiến sẽ giảm các trường hợp khiếu nại gian lận, nhưng thật không may, một nhân viên từ công ty Xổ số đã rò rỉ thông tin sau: máy cũ sẽ luôn tạo ra một số nguyên không âm hơn A và máy mới sẽ luôn tạo ra một số nguyên không âm nhỏ hơn B .
Catalina muốn giành chiến thắng xổ số này và để cho nó một thử cô quyết định mua tất cả các số nguyên không âm nhỏ hơn K .
Đưa ra A , B và K , Catalina muốn biết có bao nhiêu cách khác nhau mà máy móc có thể tạo ra một cặp số sẽ giúp cô trở thành người chiến thắng.
Bạn có thể giúp cô ấy?
Đầu vàoDòng đầu tiên của đầu vào cho số trường hợp kiểm tra, các dòng T. T theo sau, mỗi dòng có ba số AB K.
Đầu raĐối với mỗi trường hợp thử nghiệm, hãy xuất một dòng chứa "Trường hợp #x: y", trong đó x là số trường hợp thử nghiệm (bắt đầu từ 1) và y là số cặp có thể mà máy có thể tạo để biến Catalina thành người chiến thắng.
Hạn mức1 ≤ T 100. Tập dữ liệu nhỏ
1 ≤ A ≤ 1000. 1 B 1000. 1 K 1000. Tập dữ liệu lớn
1 ≤ A ≤ 109. 1 B 109. 1 K 109. Mẫu
Input Output 5 Case #1: 10 3 4 2 Case #2: 16 4 5 2 Case #3: 52 7 8 5 Case #4: 2411 45 56 35 Case #5: 14377 103 143 88Trong trường hợp thử nghiệm đầu tiên, đây là 10 cặp có thể được tạo bởi máy cũ và máy mới sẽ giúp cô ấy trở thành người chiến thắng: <0,0>, <0,1>, <0,2>, <0,3> , <1,0>, <1,1>, <1,2>, <1,3>, <2,0> và <2,1>. Lưu ý rằng <0,1> không giống với <1,0>. Ngoài ra, mặc dù cặp <2, 2> có thể được tạo ra bởi các máy nhưng điều đó sẽ không khiến Catalina giành chiến thắng vì (2 VÀ 2) = 2 và cô chỉ mua các số 0 và 1.
Đây là liên kết cho sự cố thực tế: https://code.google.com.vn/codejam/contest/2994486/dashboard#s=p1
Đây là mã golf, vì vậy mã ngắn nhất sẽ thắng. Chúc may mắn