Pagini recente » Cod sursa (job #3243712) | Cod sursa (job #1673470) | Cod sursa (job #1324343) | Cod sursa (job #236050) | Cod sursa (job #1710016)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ifstream f{ "sate2.in" };
ofstream g{ "sate2.out" };
int t, n, m, k;
f >> t;
while (t--) {
int tmp;
f >> n >> m >> k;
vector<int> nums;
while (n--) {
f >> tmp;
nums.push_back(tmp);
}
if (m%k != 0) {
g << "NU" << endl;
continue;
}
sort(nums.begin(), nums.end(), [](const int a, const int b) {
return a > b;
});
int req = m / k;
auto fit = nums.begin();
bool isDA = true;
while (fit != nums.end()) {
int num = *fit;
int sum = *fit;
nums.erase(fit);
if (sum == req) {
fit = nums.begin();
continue;
}
auto nit = nums.begin();
while(nit != nums.end()) {
if (num + *nit <= req) {
sum += *nit;
nums.erase(nit);
if (sum == req)
break;
nit = nums.begin();
}
nit = nit + 1;
}
if (sum != req) {
g << "NU" << endl;
isDA = false;
break;
}
fit = nums.begin();
}
if(isDA)
g << "DA" << endl;
}
f.close();
g.close();
return 0;
}