1291A. Even But Not Even - Codeforces Solution C++

  Problem Link : 1291A. Even But Not Even 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
 
#define ll long long int
 
int main()
{
  int t;
  cin>>t;
  while(t--)
  {
    int n;
    cin>>n;
    string s;
    cin>>s;
    ll sum=0;
    ll arr[n];
    for(int i=0;i<n;i++)
    {
      sum+=s[i]-'0';
      arr[i]=sum;
    }
 
    if((s[n-1]-'0')%2==1 && sum%2==0)
    {
      cout<<s<<"\n";
      continue;
    }
    int i=n-1;
    while(i>=0 && (s[i]-'0')%2==0)
      i--;
 
    if(i<=0)
    {
      cout<<"-1\n";
      continue;
    }
 
    s=s.substr(0,i+1);
 
    n=s.length();
    if(arr[n-1]%2==0)
    {
      cout<<s<<"\n";
      continue;
    }
 
    i=n-2;
    while(i>=0 && (s[i]-'0')%2==0)
      i--;
    if(i<0)
    {
      cout<<"-1\n";
      continue;
    }
 
    string t=s.substr(0,i);
    string q=s.substr(i+1,n-1-i);
    cout<<t+q<<"\n";
 
  }
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!