Pagini recente » Cod sursa (job #1271157) | Cod sursa (job #2097408) | Cod sursa (job #2458713) | Cod sursa (job #1026233) | Cod sursa (job #498327)
Cod sursa(job #498327)
# 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 = 1; i < n; ++i)
for (int j = i + 1; j <= n; ++j)
if (a[i] <= a[j]){
int val = sir[i] + 1;
sir[j] = maxim (sir[j], 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';
}