Hướng dẫn giải của Phần tử thứ k (PTK.CPP)
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
HƯỚNG DẪN GIẢI BÀI TOÁN: PHẦN TỬ THỨ K (PTK.CPP)
1. Phân tích bài toán
- Yêu cầu: Cho một dãy gồm ~n~ số nguyên và một số nguyên dương ~k~. Cần in ra giá trị của phần tử đứng ở vị trí thứ ~k~ trong dãy.
- Giới hạn dữ liệu:
- ~1 \le n \le 10^5~.
- Các phần tử có giá trị tuyệt đối không vượt quá ~10^9~ (phù hợp với kiểu số nguyên 4 byte như
inthoặclong long). - ~1 \le k \le n~.
- Cấu trúc dữ liệu: Sử dụng mảng một chiều có kích thước tối thiểu là ~10^5 + 5~ phần tử để lưu dãy số.
2. Thuật toán
- Đọc vào số nguyên dương ~n~.
- Sử dụng vòng lặp để nhập lần lượt các phần tử của dãy vào mảng 1 chiều ~a~ với chỉ số bắt đầu từ ~1~ đến ~n~.
- Đọc vào số nguyên ~k~.
- Truy xuất và in ra giá trị ~a[k]~.
3. Mã nguồn C++ (PTK.CPP)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int a[MAXN];
int main() {
// Tối ưu tốc độ vào/ra dữ liệu
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
// Nhập mảng 1 chiều từ vị trí 1 đến n
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int k;
cin >> k;
// In ra phần tử ở vị trí thứ k
cout << a[k] << "\n";
return 0;
}
Đang tải...