http://codeforces.com/problemset/problem/884/B
给出一个长度,表示一个二进制的数的长度,再给出n个数,用二进制来表示,如果1101则表示2和12个数,即连续的1相加表示一个数,问用这个长度的二进制来表示这n个数,且表示的方式只有一个,其实如果是只有一张表示方式,则有所有n个数的和相加等于长度减去+1-n;
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,t;
while(cin>>n>>t)
{
long long int ans=0;
long long int e;
int a=n;
while(n--)
{
cin>>e;
ans+=e;
}
if(ans+a-1==t)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}