Submission #13082629
Source Code Expand
#include <bits/stdc++.h>
#define F first
#define S second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long int ll;
const int N = 13;
int cost[N];
int arr[N][N];
int brr[N][N];
int dp[N ][N];
vector<int> total(N);
int n, m, x;
ll ans = 1e10;
string fun(int n)
{
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
string s;
for (int j = i - 1; j >= 0; j--)
s += binaryNum[j] + '0';
return s;
}
void solve(vector<int> v) {
int sz = v.size();
ll temp = 0;
//int brr[sz + 1][sz + 1];
for (int i = 0; i < sz; ++i) {
temp += cost[ v[i] ];
for (int j = 0; j < m; ++j) {
if (i == 0)
brr[i][j] = arr[ v[i] ][j];
else
brr[i][j] = arr[ v[i] ][j] + brr[i - 1][j];
}
bool flag = true;
//cout << "brr: ";
for (int k = 0; k < m; ++k) {
//cout << brr[i][k] << " ";
if (brr[i][k] < x) {
flag = false;
break;
}
}
//cout << "\n";
if (flag) {
//cout << "found it: \n";
ans = min(ans, temp);
//cout << "ans isssssssssssssss: " << ans << "\n";
return;
}
}
//cout << "\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m >> x;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; ++i) {
cin >> cost[i];
for (int j = 0; j < m; ++j) {
cin >> arr[i][j];
if (i == 0)
dp[i][j] += arr[i][j];
else
dp[i][j] += arr[i][j] + dp[i - 1][j];
}
}
for (int i = 0; i < m; ++i) {
if (dp[n - 1][i] < x) {
cout << "-1";
return 0;
}
}
ll all = pow(2, n);
string s;
for (int i = 0; i < all; ++i) {
s = fun(i);
//cout << "i is: " << i << "s is: " << s << "\n";
vector<int> v;
for (int j = 0; j < s.size(); ++j) {
if (s[j] == '1') {
//cout << "j is: " << j << "\n";
v.pb(s.size() - j - 1);
}
}
if (v.size())
solve(v);
}
if (ans == 1e12) cout << "-1";
else cout << ans << "\n";
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Skill Up |
| User | neel19 |
| Language | C++ (GCC 9.2.1) |
| Score | 300 |
| Code Size | 2017 Byte |
| Status | AC |
| Exec Time | 9 ms |
| Memory | 4096 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:94:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
94 | for (int j = 0; j < s.size(); ++j) {
| ~~^~~~~~~~~~
Judge Result
| Set Name | sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| sample | sample01, sample02, sample03 |
| All | border01, border02, border03, border04, hand01, hand02, hand03, hand04, hand05, large01, large02, large03, large04, large05, large06, large07, large08, random01, random02, random03, random04, sample01, sample02, sample03 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| border01 | AC | 5 ms | 4068 KiB |
| border02 | AC | 2 ms | 3896 KiB |
| border03 | AC | 2 ms | 3680 KiB |
| border04 | AC | 2 ms | 3508 KiB |
| hand01 | AC | 2 ms | 3624 KiB |
| hand02 | AC | 2 ms | 3500 KiB |
| hand03 | AC | 5 ms | 4008 KiB |
| hand04 | AC | 3 ms | 4092 KiB |
| hand05 | AC | 5 ms | 3964 KiB |
| large01 | AC | 4 ms | 3992 KiB |
| large02 | AC | 3 ms | 3964 KiB |
| large03 | AC | 4 ms | 3896 KiB |
| large04 | AC | 3 ms | 4092 KiB |
| large05 | AC | 3 ms | 4096 KiB |
| large06 | AC | 3 ms | 4096 KiB |
| large07 | AC | 9 ms | 3964 KiB |
| large08 | AC | 4 ms | 4016 KiB |
| random01 | AC | 2 ms | 3624 KiB |
| random02 | AC | 3 ms | 4008 KiB |
| random03 | AC | 2 ms | 3952 KiB |
| random04 | AC | 2 ms | 3624 KiB |
| sample01 | AC | 3 ms | 3960 KiB |
| sample02 | AC | 2 ms | 3496 KiB |
| sample03 | AC | 2 ms | 3956 KiB |