Rahul Padhy
BAN USERSleeping..
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int calc(string str,int n,int x,int y)
{
const ll mod=1e9+7;
ll i,j,len=str.length(),src=x,dest=y,pos,val=n,flag;
string temp;
set<string> st;
for(i=0;i<(1<<len);i++)
{
pos=src;
flag=1;
for(j=0;j<len;j++)
{
if(i&(1<<j))
{
if(str[i]=='l')
pos--;
else
pos++;
if(pos<0 || pos>n)
{
flag=0;
break;
}
}
}
if(pos==dest && flag)
{
temp="";
for(j=0;j<len;j++)
{
if((1<<j)&i)
temp+=str[j];
}
st.insert(temp);
}
}
return (int)(st.size()%mod);
}
int main()
{
string str;
int n,x,y;
cin>>str;
cin>>n>>x>>y;
cout<<calc(s,n,x,y)<<endl;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i,t,n,a,mx,lb;
vector<int> v,res;
cin>>t;
while(t--)
{
cin>>n;
v.clear();
res.clear();
while(n--)
{
cin>>a;
v.push_back(a);
}
n=v.size();
res.push_back(v[0]);
mx=v[0];
for(i=1;i<n;i++)
{
if(v[i]>mx)
res.push_back(v[i]);
else if(v[i]<mx)
{
lb=lower_bound(res.begin(),res.end(),v[i])-res.begin();
res[lb]=v[i];
}
mx=res[res.length()-1];
}
cout<<"The Longest Increasing Sequence is :\n";
for(i=0;i<res.size();i++)
cout<<res[i]<<' ';
cout<<"\nLength of the LIS found = "<<res.size();
}
}
This question ain't that clear.. A little bit of more explanation was definitely needed..
- Rahul Padhy August 14, 2017