Pagini recente » Cod sursa (job #1896690) | Cod sursa (job #2817749) | Cod sursa (job #222857) | Cod sursa (job #246524) | Cod sursa (job #2150242)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int A[100001],n,m;
vector <int> V[100001];
//int V[100001];
int cauta(int val)
{
int st=0,dr=m+1;
while((dr-st)>1)
{
int mid=(st+dr)/2;
if(V[mid][mid-1]<=val)
st=mid;
else dr=mid;
}
return dr;
}
int main()
{
fi>>n;
for(int i=1; i<=n; i++)
{
fi>>A[i];
int poz=cauta(A[i]);
V[poz]=V[poz-1];
V[poz].push_back(A[i]);
if(poz==m+1)
m++;
if(V[poz][poz]==V[poz][poz-1])
{
V[poz].clear();
m--;
}
for(int j=0;j<poz;j++)
fo<<V[poz][j]<<" ";
fo<<"\n";
// if(poz==m+1)
// {
// V[m+1].push_back(A[i]);
// if(m+1!=1)
// for(int i=0;i<=V[m].size();i++)
// V[m+1].push_back(V[m][i]);
// m++;
//
// }
// else
// if(poz==0)
// {
// V[1].clear();
// V[1].push_back(A[i]);
// }
// else
// {
// if(A[i]!=V[poz][0])
// {
// V[poz].clear();
// V[poz].push_back(A[i]);
// if(poz-1>0)
// for(int i=1;i<=n;i++)
// V[poz].push_back(V[poz-1][i]);
// }
// }
}
//fo<<m<<"\n";
// for(int j=1;j<=m;j++){
// for(int i=0;i<=V[j].size();i++)
// {
// if(V[j][i]!=0)
// fo<<V[j][i]<<" ";
// }
// fo<<"\n";}
return 0;
}