2022_DE1BAI2 - 2022_de1bai2:Tổng đoạn con
Xem dạng PDF
Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
TDOAN.INP
Output:
TDOAN.OUT
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JavaScript, Kotlin, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift
Bình luận
include <iostream>
include <vector>
include <algorithm>
include <cstdio>
using namespace std;
int main() { iosbase::syncwith_stdio(false); cin.tie(NULL);
} Bài nè
Đề bài: cho mảng ~a~ gồm có ~n~ phần tử và một số nguyên ~k~. Hãy tìm đoạn con liên tiếp của ~a~ có tổng các phần tử đúng bằng ~k~. Nếu có nhiều đoạn thoả mãn, hãy chọn đoạn ngắn nhất, nếu vẫn có nhiều đoạn thoả mãn thì chọn đoạn con xuất hiện sớm nhất.
Input:
Output:
include<bits/stdc++.h>
using namespace std;
int main(){ iosbase::syncwithstdio(false);cin.tie(nullptr);cout.tie(nullptr); freopen("TDOAN.INP","r",stdin); freopen("TDOAN.OUT","w",stdout); int n, k, x; cin >> n >> k; unorderedmap<long long, int> c; long long pref = 0; int dl = INT_MAX, vt = -1; c[0] = 0; for (int i = 1; i <= n; i++) { cin >> x; pref += x; if(c.count(pref - k)) { int l = c[pref - k]; if (i - l < dl) { dl = i - l; vt = l; } } c[pref] = i; } if(vt == -1) cout << 0; else cout << vt + 1 << " " << dl; return 0; }
chep di ae
}
Chep di ae:
using namespace std; int main(){ iosbase::syncwithstdio(false);cin.tie(nullptr);cout.tie(nullptr); freopen("TDOAN.INP","r",stdin); freopen("TDOAN.OUT","w",stdout); int n, k, x; cin >> n >> k; unorderedmap<long long, int> c; long long pref = 0; int dl = INT_MAX, vt = -1; c[0] = 0; for (int i = 1; i <= n; i++) { cin >> x; pref += x; if(c.count(pref - k)) { int l = c[pref - k]; if (i - l < dl) { dl = i - l; vt = l; } } c[pref] = i; } if(vt == -1) cout << 0; else cout << vt + 1 << " " << dl; return 0; }
a
4
De dau ae
không đề làm kiểu gì
uia
ad hãy copy cái này rồi đọc infinity lần:
đ
đề đâu vậy ad