Submission #499001

#TimeUsernameProblemLanguageResultExecution timeMemory
499001amukkalirBali Sculptures (APIO15_sculpture)C++17
0 / 100
1 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; 

const int INF = INT_MAX; 
const int nax = 2000; 
int a, b, n; 
int y[nax+5]; 
int dp[55][50]; 

bool ok (int x) {
	return a <= x && x <= b; 
}

int f(int idx, int grup) {
	if(idx == n+1) return ok(grup) ? 0 : 1e5; 

	int &res = dp[idx][grup]; 
	if(~res) return res; 

	res = INF; 

	for(int i=idx; i<=n; i++) {
		res = min(res, (y[i] - y[idx-1]) | f(i+1, grup+1)); 
	}
	//cerr << idx << " " << grup << " " << res << endl; 
	return res; 
}

int main() {
	scanf("%d %d %d", &n, &a, &b); 

	for(int i=1; i<=n; i++) {
		scanf("%d", &y[i]); 
		y[i] += y[i-1]; 
	}
	memset(dp, -1, sizeof (dp)); 

	printf("%d", f(1, 0)); 
}

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |  scanf("%d %d %d", &n, &a, &b);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sculpture.cpp:34:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |   scanf("%d", &y[i]);
      |   ~~~~~^~~~~~~~~~~~~
#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...