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
AC × 3
AC × 24
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