Pagini recente » Cod sursa (job #1762542) | Cod sursa (job #838464) | Cod sursa (job #1873703) | Cod sursa (job #589938) | Cod sursa (job #1176262)
#include<fstream>
using namespace std;
ifstream in("decrease.in");
ofstream out("decrease.out");
int v[5009],sol[5009],p[5009],n,best,bst= 0,nr;
int main()
{
in>>n;
int i,j;
for(i = 1 ; i <= n ; i++)
in>>v[i];
sol[n] = 1;
p[n] = 1;
for(i = n-1 ; i >= 1 ; i--)
{
best = 0;
for(j = i+1 ; j <= n ; j++)
if(v[j] < v[i] && sol[j] > best) best = sol[j];
sol[i] = best+1;
for(j = i+1 ; j <= n ; j++)
if(v[j] < v[i] && sol[j] == best) p[i] +=p[j];
if(!p[i]) p[i]++;
if(sol[i] > bst) bst = sol[i];
}
for(i = 1 ; i <= n ; i++)
if(sol[i] == bst) nr+=p[i];
out<<bst<<" "<<nr;
in.close();
out.close();
return 0;
}