Submission #1177634

#TimeUsernameProblemLanguageResultExecution timeMemory
11776348pete8Kas (COCI17_kas)C++20
100 / 100
171 ms3576 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define f first
#define s second
#define pii pair<int,int>
#define ppii pair<int,pii>
#define vi vector<int>
#define pb push_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define F(n) for(int i=0;i<n;i++)
#define lb lower_bound
#define ub upper_bound
#define fastio ios::sync_with_stdio(false);cin.tie(NULL);
#pragma GCC optimize ("03,unroll-lopps")
#define sz(x) (int)((x).size())
#define int long long
using namespace std;
const int mod=1e9+7,mxn=1e5,inf=1e18,minf=-1e18,lg=20,Mxn=1e6;
//#undef int
int n,k,m,d,q;
void setIO(string name){
	ios_base::sync_with_stdio(0); cin.tie(0);
	freopen((name+".in").c_str(),"r",stdin);
	freopen((name+".out").c_str(),"w",stdout);
}
int w[mxn+10],dp[2][2*mxn+10];
int32_t main(){
	fastio
	cin>>n;
	int sum=0;
	for(int i=1;i<=n;i++)cin>>w[i],sum+=w[i];
	for(int i=0;i<=2*mxn;i++)for(int j=0;j<2;j++)dp[j][i]=minf;
	dp[0][mxn]=0;
	for(int i=1;i<=n;i++){
		int c=i%2,l=c^1;
		for(int j=2*mxn;j>=0;j--){
			dp[c][j]=max(dp[c][j],dp[l][j]);
			if(j>=w[i])dp[c][j]=max(dp[c][j],dp[l][j-w[i]]+w[i]);
			if(j+w[i]<=2*mxn)dp[c][j]=max(dp[c][j],dp[l][j+w[i]]);
		}
		for(int j=0;j<=2*mxn;j++)dp[l][j]=minf;
	}
	cout<<dp[n%2][mxn]+(sum-2*dp[n%2][mxn]);
}
/*
*/

Compilation message (stderr)

kas.cpp:16:40: warning: bad option '-funroll-lopps' to pragma 'optimize' [-Wpragmas]
   16 | #pragma GCC optimize ("03,unroll-lopps")
      |                                        ^
kas.cpp:23:23: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   23 | void setIO(string name){
      |                       ^
kas.cpp:29:14: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
   29 | int32_t main(){
      |              ^
kas.cpp: In function 'void setIO(std::string)':
kas.cpp:25:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |         freopen((name+".in").c_str(),"r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kas.cpp:26:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |         freopen((name+".out").c_str(),"w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...
#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...