Pagini recente » Cod sursa (job #1679987) | Cod sursa (job #497046) | Cod sursa (job #281659) | Cod sursa (job #2922694) | Cod sursa (job #498570)
Cod sursa(job #498570)
# include <fstream>
using namespace std;
void make ();
void read ();
int main (){
make ();
return 0;
}
int n, a[6000], b[6000], sol[6000], sir[6000];
void read (){
ifstream f ("subsir2.in");
f >> n;
for (int i = 1; i <= n; ++i) f >> a[i];
}
inline int maxim (int a, int b){
if (a > b) return a;
return b;
}
void make (){
read ();
int MAX = 0, cnt = 1, poz, MIN;
sir[1] = 1;
for (int i = 2; i <= n; ++i)
for (int j = i - 1; j; --j)
if (a[i] >= a[j]){
int val = sir[j] + 1;
sir[i] = maxim (sir[i], val);
MAX = maxim (MAX, val);
}
ofstream g ("subsir2.out");
g << MAX << '\n';
for (int i = 1; i <= MAX; ++i){
MIN = 100000000;
for (int j = cnt; j <= n; ++j){
if (sir[j] == i && MIN > a[j]) MIN = a[j], poz = j;
}
cnt = poz;
g << poz << ' ';
}
g << '\n';
}