Cod sursa(job #1203799)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 1 iulie 2014 12:30:25
Problema Semne Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>
#define NMax 500005
using namespace std;
ifstream fin("semne3.in");
ofstream fout("semne3.out");
vector<int> G[NMax];
int O[NMax],N,Use[NMax],k;

void Read()
{
    fin>>N;
    for(int i=1;i<N;i++)
        {
            char c;
            fin>>c;
            if(c=='>')
                G[i+1].push_back(i);
            else
                G[i].push_back(i+1);
        }
}

void DFS(int Nod)
{
    Use[Nod]=1;
    for(unsigned int i=0;i<G[Nod].size();i++)
        {
            int Vecin=G[Nod][i];
            if(!Use[Vecin])
                DFS(Vecin);
        }
    O[++k]=Nod;
}

void Solve()
{
    for(int i=N;i>0;i--)
        {
            if(!Use[i])
                DFS(i);
        }
}

void Print()
{
    for(int i=k;i>=1;i--)
        fout<<O[i]<<" ";
    fout<<"\n";
}

int main()
{
    Read();
    Solve();
    Print();
    return 0;
}