[Mảng 1 Chiều Cơ Bản]. Bài 21. Chèn mảng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng số nguyên A[] gồm N phần tử, nhiệm vụ của bạn là chèn phần tử X vào vị trí K trong mảng sau đó in ra mảng. Lưu ý K bắt đầu từ 1

Tham khảo về thuật toán chèn : Chèn phần tử vào mảng


Đầu vào

Dòng đầu tiên là 3 số nguyên dương N, X, K

Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng


Giới hạn

1<=K<=N<=1000

-10^3<=A[i], X<=10^3


Đầu ra

In ra mảng sau khi chèn


Ví dụ :

Input 01
10 28 5
1 2 3 4 5 6 7 8 9 10
Output 01
1 2 3 4 28 5 6 7 8 9 10

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    LittleBo_29  đã bình luận lúc 5, Tháng 7, 2025, 15:27

    include <bits/stdc++.h>

    define ll long long

    define fi first

    define se second

    define pa pair<int,int>

    define vec vector<int>

    define el cout<<'\n'

    define fast iosbase::syncwith_stdio(0); cin.tie(0); cout.tie(0);

    using namespace std;

    void doc(){ fast freopen("test.inp", "r", stdin); freopen("test.out", "w", stdout); }

    int n,x,k; int a[1001];

    int main(){ //doc(); cin>>n>>x>>k; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++){ if(i == k) cout<<x<<" "; cout<<a[i]<<" "; } return 0; }


  • 0
    minhtai208  đã bình luận lúc 30, Tháng 6, 2025, 14:13

    include <iostream>

    include <iomanip>

    include <math.h >

    include <climits>

    using namespace std; long long a[10000005]; int main() { int n, x, k; cin >> n >> x >> k; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = n - 1; i >= k; i--) { a[i + 1] = a[i]; } a[k] = x; ++n;

    for (int i = 0; i < n; i++) {
        cout << a[i] << " ";
    }
    
    
    return 0;
    

    } mọi người xem giúp e với ạaa em nộp miết mã cứ báo sai ạa


    • 0
      bengokyeuanh99  đã bình luận lúc 5, Tháng 7, 2025, 15:53

      À bạn bị sai chỗ chỉ số đó. Đề yêu cầu K tính từ 1, nhưng trong code bạn lại xử lý mảng từ chỉ số 0.

      Cụ thể: Khi bạn for (int i = n - 1; i >= k; i--) thì đang dời sai vị trí.

      Với K = 5 (tức là muốn chèn vào vị trí số 5 – tính từ 1), thì thực ra cần dời từ vị trí k-1 trở đi.

      Fix nhẹ bằng cách:

      for (int i = n - 1; i >= k - 1; i--) { a[i + 1] = a[i]; } a[k - 1] = x;

      Ngoài ra: Bạn ++n; rồi duyệt i < n là đúng – nhưng khi in ra cũng cần in từ 0 -> n-1, không được lệch.

      Không cần dùng mảng long long a[1e7] làm gì cho nặng RAM đề chỉ cần mảng a[1005] là đủ.

      Đảm bảo dấu cách đúng chuẩn và không bị in thừa ở cuối dòng nữa là AC thôi.


  • 0
    hieu_804  đã bình luận lúc 8, Tháng 3, 2025, 5:19

    bài trong contest và bài trong vid chữa python là hai bài khác nhau


  • 0
    GodNona  đã bình luận lúc 6, Tháng 2, 2025, 16:18

    Mọi người giúp e với ạ. E không biết sao sai hết khi nộp ạ:))

    include <bits/stdc++.h>

    using namespace std;

    define ll long long

    const int MOD = 1e9 + 7;

    int a[1000006];

    int main() { iosbase::syncwith_stdio(0); cin.tie(NULL);

    int n, x, k; cin >> n >> x >> k;
    for(int i = 0; i < n; i++)
        cin >> a[i];
    
    for(int i = n; i > k; i--)
        a[i] = a[i - 1];
    
    a[k] = x;
    ++n;
    for(int i = 0; i < n; i++)
        cout << a[i] << " ";
    
    return 0;
    

    }


  • 15
    Quan_Van_Hoang_CPP  đã bình luận lúc 14, Tháng 5, 2024, 18:05

    mọi người ơi, đừng gửi code vào đây nữa, bài này có gợi ý rồi thì nên để mọi người tự suy nghĩ thì hơn (~ ̄▽ ̄)~💻


  • -7
    minhquan2905  đã bình luận lúc 12, Tháng 5, 2024, 11:22

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -10
    Itachi  đã bình luận lúc 29, Tháng 4, 2024, 11:00

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -9
    xuanthinh  đã bình luận lúc 28, Tháng 4, 2024, 8:59

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.