Submission #82562

#TimeUsernameProblemLanguageResultExecution timeMemory
82562thiago4532San (COCI17_san)C++17
48 / 120
470 ms544 KiB
#include <bits/stdc++.h>
#define int int64_t

using namespace std;
const int maxn = 40;
int h[maxn], c[maxn];
int n, k;

int32_t main(){
	ios::sync_with_stdio(false), cin.tie(0);
	cin >> n >> k;

	for(int i=1;i<=n;i++)
		cin >> h[i] >> c[i];

	int ans=0;
	for(int i=1;i<(1<<n);i++){
		vector<int> mark;

		int num=0;
		for(int j=1;j<=n;j++)
			if(i&(1<<(j-1))) mark.push_back(j), num += c[j];

		// cout << "{";
		// for(int i=0;i<mark.size();i++)
		// 	cout << mark[i] << ",}"[i==mark.size()-1];
		// cout << "\n";

		bool possible = (num >= k);
		if(!possible) continue;
		for(int j=0;j<mark.size()-1;j++){
			if(h[mark[j+1]] < h[mark[j]]){
				possible = false;
				break;
			}
		}
		if(possible) ans++, ans%=1000000007;
	}
	cout << ans << "\n";
	return 0;
}

Compilation message (stderr)

san.cpp: In function 'int32_t main()':
san.cpp:31:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=0;j<mark.size()-1;j++){
               ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...