Cod sursa(job #1864552)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 31 ianuarie 2017 20:43:32
Problema Subsir 2 Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> v, sir;
int n;

void read()
{
    ifstream fin ("subsir2.in");
    fin >> n;
    int x;
    for (int i = 0; i < n; ++i){
        fin >> x;
        v.push_back(x);
    }
    fin.close();
}

int minNum(int l, int r)
{
    int mn = 1 << 30, pos = l;
    for (int i = l; i <= r; ++i)
        if (v[i] < mn){
            mn = v[i];
            pos = i;
        }
    return pos;
}

void magic()
{
    int i = -1;
    while(i < n-1){
        i = minNum(i + 1, n-1);
        sir.push_back(i);
    }
}

void write()
{
    ofstream fout ("subsir2.out");
    fout << sir.size() << "\n";
    for (unsigned i = 0; i < sir.size(); ++i)
        fout << sir[i] + 1 << " ";
    fout.close();
}

int main()
{
    read();
    magic();
    write();
    return 0;
}