提交时间:2023-11-18 08:36:02

运行 ID: 110969

#include<bits/stdc++.h> using namespace std; int n,pr[10000],m,t; void dfs(int r,int step) { if(step==n) { if(r>m) m=r; return; } for(int i=1;i<=3;i++) { switch(i) { case 1: { t++; dfs(r-pr[step+1],step+1); t--; break; } case 2: { if(t) { t--; dfs(r+pr[step+1],step+1); t++; } break; } case 3: dfs(r,step+1); break; } } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>pr[i]; dfs(0,0); cout<<m; return 0; }