@994495jj
2017-05-31T11:47:01.000000Z
字数 1155
阅读 816
(ACM)思维
#include <algorithm>#include <iostream>#include <cstring>#include <vector>#include <cstdio>#include <string>#include <cmath>#include <queue>#include <set>#include <map>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> pii;typedef pair<ll,ll> pll;#define mp make_pair#define pb push_back#define fi first#define se second#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define de(x) cout << #x << "=" << x << endlconst int N=100005;int res[N],a[N];int main() {int n;while(~scanf("%d",&n)) {///readfor(int i=1;i<=n;++i) scanf("%d",a+i);///solvell sum=a[n];res[n]=1;for(int i=n-1;i>=1;--i) {if(-a[i]<=sum+a[i]&&sum+a[i]<=a[i]) {sum=sum+a[i];res[i]=1;} else {sum=sum-a[i];res[i]=0;}}if(sum<0) {for(int i=1;i<=n;++i) res[i]=1-res[i];}for(int i=1;i<=n;++i) printf("%c",res[i]?'+':'-');puts("");}return 0;}
