Đề:
a.png
Em chạy hết mọi ngóc ngách rồi, tuy code hơi bựa nhưng không thể nào sai được, vậy mà submit cứ bị Wrong Answer :surrender:
Ai giúp em tìm ra test hiểm và bug trong code em với ạ, em cảm ơn nhiều!
Ý tưởng: Chạy từ đầu đến cuối dãy, ở mỗi lượt chạy, tính tổng các dãy con tạo bởi phần từ đang xét và các phần tử theo sau nó, khi gặp
dãy con có tổng >= k thì thoát ra, trước khi thoát có ghi nhận độ dài để tìm min độ dài nhằm làm kết quả cuối cùng. Ở cuối hàm main là
một loạt if để bắt các test hiểm.
// biến trong bài: n <-> N, k <-> S, s là biến tạm để tính tổng mỗi dãy con, l là chiều dài tạm của mỗi dãy con, m là kết quả cần xuất.
Code em:
a.png
Em chạy hết mọi ngóc ngách rồi, tuy code hơi bựa nhưng không thể nào sai được, vậy mà submit cứ bị Wrong Answer :surrender:
Ai giúp em tìm ra test hiểm và bug trong code em với ạ, em cảm ơn nhiều!
Ý tưởng: Chạy từ đầu đến cuối dãy, ở mỗi lượt chạy, tính tổng các dãy con tạo bởi phần từ đang xét và các phần tử theo sau nó, khi gặp
dãy con có tổng >= k thì thoát ra, trước khi thoát có ghi nhận độ dài để tìm min độ dài nhằm làm kết quả cuối cùng. Ở cuối hàm main là
một loạt if để bắt các test hiểm.
// biến trong bài: n <-> N, k <-> S, s là biến tạm để tính tổng mỗi dãy con, l là chiều dài tạm của mỗi dãy con, m là kết quả cần xuất.
Code em:
Code:
#include <iostream> using namespace std; int main() { int n, k; cin >> n >> k; int a[100000]; for (int i = 0; i < n; i++) cin >> a[i]; a[n++] = 0; int m = n, s, l; for (int i = 0; i < n; i++) { s = a[i], l = 1; for (int j = i + 1; j < n; j++) { if (s >= k) { if (l < m) m = l; break; } s += a[j]; l++; } } if (m > n - 1 || n - 1 == 1 && a[0] < k) { cout << 0 << '\n'; return 0; } if (n - 1 == 1 && a[0] >= k) { cout << 1 << '\n'; return 0; } cout << m << '\n'; return 0; }
Comment