Submission #882435

#TimeUsernameProblemLanguageResultExecution timeMemory
882435vjudge1Bali Sculptures (APIO15_sculpture)C++17
21 / 100
10 ms8784 KiB
#pragma optimize("Bismillahirrahmanirrahim")
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█■█
//█─█─█▄─█▄─█─█─█─█
//Allahuekber
//ahmet23 orz...
//Sani buyuk Osman Pasa Plevneden cikmam diyor.
//FatihSultanMehmedHan
//YavuzSultanSelimHan
//AbdulhamidHan
#define author tolbi
#include <bits/stdc++.h>
using namespace std;
template<typename X, typename Y> istream& operator>>(istream& in, pair<X,Y> &pr) {return in>>pr.first>>pr.second;}
template<typename X, typename Y> ostream& operator<<(ostream& os, pair<X,Y> pr) {return os<<pr.first<<" "<<pr.second;}
template<typename X> istream& operator>>(istream& in, vector<X> &arr) {for(auto &it : arr) in>>it; return in;}
template<typename X> ostream& operator<<(ostream& os, vector<X> arr) {for(auto &it : arr) os<<it<<" "; return os;}
template<typename X, size_t Y> istream& operator>>(istream& in, array<X,Y> &arr) {for(auto &it : arr) in>>it; return in;}
template<typename X, size_t Y> ostream& operator<<(ostream& os, array<X,Y> arr) {for(auto &it : arr) os<<it<<" "; return os;}
#define int long long
#define endl '\n'
#define vint(x) vector<int> x
#define deci(x) int x;cin>>x;
#define decstr(x) string x;cin>>x;
#define cinarr(x) for (auto &it : x) cin>>it;
#define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl;
#define sortarr(x) sort(x.begin(),x.end())
#define sortrarr(x) sort(x.rbegin(),x.rend())
#define det(x) cout<<"NO\0YES"+x*3<<endl;
#define INF LONG_LONG_MAX
#define rev(x) reverse(x.begin(),x.end());
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define tol(bi) (1LL<<((int)(bi)))
const int MOD = 1e9+7;
mt19937 ayahya(chrono::high_resolution_clock().now().time_since_epoch().count());
int32_t main(){
	ios;
	int t=1;
	int tno = 0;
	if (!t) cin>>t;
	while (t-(tno++)){
		deci(n);deci(a);deci(b);
		vint(arr(n));
		cinarr(arr);
		vector<vector<vector<int>>> dp(n,vector<vector<int>>(n,vector<int>(n+1,-1)));
		vector<int> pref = arr;
		for (int i = 1; i < n; i++){
			pref[i]+=pref[i-1];
		}
		function<int(int,int)> query = [&](int l, int r)->int{
			int hh = 0;
			if (l) hh = pref[l-1];
			return pref[r]-hh;
		};
		function<int(int,int,int)> f = [&](int l, int r, int x)->int{
			if (r>=n){
				if (l==r && x>=a && x<=b) return 0;
				else return -2;
			}
			if (dp[l][r][x]!=-1) return dp[l][r][x];
			if (f(r+1,r+1,x+1)!=-2) dp[l][r][x]=f(r+1,r+1,x+1)|query(l,r);
			else dp[l][r][x]=INF;
			if (f(l,r+1,x)!=-2) dp[l][r][x]=min(dp[l][r][x],f(l,r+1,x));
			if (dp[l][r][x]==INF) dp[l][r][x]=-2;
			return dp[l][r][x];
		};
		cout<<f(0,0,0)<<endl;
	}
}

Compilation message (stderr)

sculpture.cpp:1: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    1 | #pragma optimize("Bismillahirrahmanirrahim")
      |
#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...