Originally posted by 13520469
View Post
Announcement
Collapse
No announcement yet.
Về bài K - ACM Miền Trung 10/10/2015
Collapse
X
-
-
Thật ra mình nghĩ ko phải do code mà là do bạn đọc ko kĩ đề, Input có ghi rõ là "multiple test case", chương trình của bạn khi submit chỉ chạy được mỗi 1 test nên sẽ bị trả về WA.
Leave a comment:
-
em canh hết rồi anh :beauty: bảo đảm chạy đúng yêu cầu đề, ngon lành cành đào ko TLA được :embarrassed: mà cái này là dãy con liên tiếp mà anh chơi sort thì hỏng hết thứ tự rồi :brick:
anh còn rảnh thì tìm hộ em test hiểm với ạ, chứ em bao hết rồi mà vẫn còn thủng :doubt:
Leave a comment:
-
À còn nữa, cấp phát biến dùng long long n. Int không đủ bộ nhớ thì phải ( nói chung khai báo biến cứ quất long long cho chắc cứ)
Leave a comment:
-
Về bài K - ACM Miền Trung 10/10/2015
Đề:
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; }
Tags: None
Leave a comment: