#include <iomanip>
#include <algorithm>
#include <vector>
#include <list>
#include <cmath>
#include <sstream>
#include <cstdlib>
#include <cstring>
#define re return
#define SZ size()
#define L length()
#define vi vector<int>
#define vs vector<string>
#define REP(i,n) for(int i=0;i<n;i++)
#define KEP(i,a,b) for(int i=a;i<=b;i++)
#define MEP(i,a,b) for(int i=a;i>=b;i--)
#define Sort(a) sort(a.begin(),a.end())
#define MAX 1001
using namespace std;
vi w,s;
vi fin,fout;
vi orgw,orgs;
vi b(MAX);
void printlis(int max,int pos)
{
if(max<0) return;
int x=fout[pos]; int y=fin[pos];
int display;
REP(i,fout.SZ)
if(x==orgw&&y==orgs)
{
display=i;
break;
}
for(int i=pos;i>=0;i--)
if(b==max-1)
{
printlis(--max,i);
break;
}
cout<<display+1<<endl;
}
int main()
{
int x,y;
while(cin>>x)
{
cin>>y;
w.push_back(x);
s.push_back(y);
}
orgw=w;
orgs=s;
fin=s;
sort(fin.begin(),fin.end());
reverse(fin.begin(),fin.end());
REP(i,fin.SZ)
{
for(int j=0;j<s.SZ;j++)
{
if(fin==s[j])
{
fout.push_back(w[j]);
w.erase(w.begin()+j);
s.erase(s.begin()+j);
break;
}
}
}
int len=fout.SZ;
int max=0,pos=0;
for(int i=0;i<len;i++) b=1;
for(int i=1;i<len;i++)
for(int j=0;j<len;j++)
{
if(fout>fout[j]&&fin<fin[j]&&b<b[j]+1)
b=b[j]+1;
if(max<b)
{
pos=i;
max=b[i];
}
}
cout<<max<<endl;
printlis(max,pos);
return 0;
}
Attempted the question for a long time....but got WA
![:oops:](./images/smilies/icon_redface.gif)
Why plz sumbdy help me...!!