Trang chủ Tin Học Lớp 8 giúp mình bài này với nha, code c++ hay py...

giúp mình bài này với nha, code c++ hay py đều dc miễn full test là ok, ai có code chạy nhanh hơn thì mik cho hay nhấtBa bạn A,B,C chơi một trò chơi như sau: C

Câu hỏi :

giúp mình bài này với nha, code c++ hay py đều dc miễn full test là ok, ai có code chạy nhanh hơn thì mik cho hay nhất

image

giúp mình bài này với nha, code c++ hay py đều dc miễn full test là ok, ai có code chạy nhanh hơn thì mik cho hay nhấtBa bạn A,B,C chơi một trò chơi như sau: C

Lời giải 1 :

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n, x;
    char res;
    cin >> n >> x;
// Ở đây mình chọn theo từng lượt, ví dụ 10 số 1 2 3 4 5 6 7 8 9 10, thì lượt thứ 1 là 1 2 10, lượt 2 là 3 4 9, ...
// a ở đây là số thứ tự của lượt, ví dụ x = 7 thì đang ở lượt số 4
// Mình chia các lượt làm phần đầu, phần giữa và phần cuối, phần đầu gồm 2 số, phần cuối gồm 1 số, vòng thứ 1 là 1 2 phần đầu, 10 phần cuối, tương tự 
// Phần đầu là 1 2 3 4 5 6, phần cuối là 8 9 10, phần giữa là số còn lại: 7
    int a = (x - 1) / 2 + 1;
// Nếu số x thuộc phần đầu của các lượt, mình sẽ chia làm 2 case, ở lượt chẵn và lượt lẻ
    if(a <= n / 3){
        if(a % 2 == 0){
            if(x % 2 == 1) res = 'b';
            else res = 'c';
        }
// Như đề ra thì nếu ở lượt chẵn, b sẽ lấy số bé nhất, c sẽ lấy số bé tiếp theo  -> số đầu là của b, số thứ 2 của c -> mình có số 3, đang ở lượt chẵn, mà số 3 ở đầu lượt chẵn nên sẽ là của b
// Tương tự với lượt lẻ
        if(a % 2 == 1){
            if(x % 2 == 1) res = 'a';
            else res = 'b';
        }
// Nếu x thuộc phần cuối, như đề ra thì ở lượt lẻ, a sẽ lấy số lớn nhất, lượt chẵn là c nên sẽ theo thứ tự a c a c ...
// Ví dụ, số 8, mình lấy từ sau ra lần lượt là 10 9 8 thì a c a, 8 là của a 
    } else if (a * 2 >= n){
        if(n - x % 2 == 1) res = 'a';
        else res = 'c';
// Phần giữa, tức là chưa đủ 3 phần tử để cấu thành 1 lượt, nếu còn 1 phần tử duy nhất thì nó chắc chắn sẽ là của a
    } else if (n - (a - 1) * 3 == 1){
        res = 'a'; 
// Ngược lại, ở lượt chẵn a sẽ lấy số bé nhất, lượt lẻ a sẽ lấy số lớn nhất 
    }else {
        if(a % 2 == 0){
            if(x % 2 == 1) res = 'b';
            else res = 'a';
        }
        if(a % 2 == 1){
            if(x % 2 == 1) res = 'a';
            else res = 'b';
        }
    }
    cout << res;
    return 0;
//Nếu rảnh thì bạn có thể tối ưu code thành công thức tổng quát (0, 1, 2), mình viết như này tường minh để bạn dễ hiểu :3
}

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK