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 |