Submission #376317

#TimeUsernameProblemLanguageResultExecution timeMemory
376317jamielimBigger segments (IZhO19_segments)C++14
13 / 100
110 ms492 KiB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define mp make_pair
#define pb emplace_back
#define ALL(x) x.begin(),x.end()
#define SZ(x) (int)x.size()
typedef long long ll;
typedef pair<int,int> ii;
typedef pair<ii,ii> i4;
typedef pair<ll,ll> pll;
const int MOD=1000000007;
const int INF=1012345678;
const ll LLINF=1012345678012345678LL;
const double PI=3.1415926536;
const double EPS=1e-14;

int n;
ll arr[500005];

int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++)scanf("%lld",&arr[i]);
	int ans=0;
	for(int i=0;i<(1<<(n-1));i++){
		int bm=i;
		vector<int> v;
		while(bm&(-bm)){
			int x=__builtin_ctz(bm);
			v.pb(x);
			bm-=(bm&(-bm));
		}
		v.pb(n-1);
		int cur=0;ll sum=0,prv=0;
		bool poss=1;
		for(int j:v){
			while(cur<=j){
				sum+=arr[cur];
				cur++;
			}
			if(sum<prv){
				poss=0;break;
			}else{
				prv=sum;sum=0;
			}
		}
		if(poss)ans=max(ans,SZ(v));
	}
	printf("%d",ans);
}

Compilation message (stderr)

segments.cpp: In function 'int main()':
segments.cpp:24:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   24 |  scanf("%d",&n);
      |  ~~~~~^~~~~~~~~
segments.cpp:25:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   25 |  for(int i=0;i<n;i++)scanf("%lld",&arr[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...