Limited budget party second test case fail

#include
#include
#include

using namespace std;

int main()
{
int t;
cin>>t;

while(t–)
{
long long n,x;
cin>>n>>x;
long long y;

vector v;
for(auto i=0;i<n;i++)
{ cin>>y;
v.push_back(y);
}

int start=0;
long long csum=v[0];
int flag=0;

for(auto i=1;i<n;i++)
{
while(csum>x && start<i-1)
{
csum=csum-v[start];
start++;
}

if(csum==x)
flag=1;

if(i<n)
csum=csum+v[i];
}
if(flag)
cout<<“Yes”<<endl;
else
cout<<“No”<<endl;
}
return 0;
}

You should check wheather csum is equal to x or not outside of the loop as well.
e.g.
5 12
1 2 3 4 2
You can verify with this test case .