little w and Sum 牛客練習賽34
阿新 • • 發佈:2018-12-16
連結:https://ac.nowcoder.com/acm/contest/297/B
來源:牛客網
題解:暴力模擬
程式碼:
#include <iostream> using namespace std; typedef long long ll; const ll maxn=1e5+5; ll s[maxn]; int main(){ ll n; cin>>n; ll ans=0; for(ll i=0;i<n;i++){ cin>>s[i]; ans+=s[i]; } ll num=0; ll flag=0; for(ll i=0;i<n;i++){ if(-s[i]+ans-s[i]==0){ flag=1; num++; } } if(flag) cout<<num<<endl; else cout<<-1<<endl; return 0; }
題目描述
小w與tokitsukaze一起玩3ds上的小遊戲,現在他們遇到了難關。
他們得到了一個數列,通關要求為這個數列的和為0,並且只有一次改變一個數的符號的機會(正數變成負數,負數變成正數)。
請問小w與tokitsukaze能否通關,如果能,請輸出有多少個數符合要求,如果不能,請輸出-1。
輸入描述:
第一行包括一個正整數n(1≤n≤10^5),表示這個數列有n個數。 接下來一行有n個數x (-100≤x≤100),表示數列(數列的和保證不等於0)。
輸出描述:
輸出有多少個符合要求的數,如果沒有,請輸出-1。
示例1
輸入
5 1 3 -5 3 4
輸出
2
說明
只要把一個3變成-3,數列的和就變為0。數列裡總共有兩個3,所以有2個符合要求的數。
示例2
輸入
4 1 2 4 8
輸出
-1