Cod sursa(job #425756)

Utilizator DraStiKDragos Oprica DraStiK Data 26 martie 2010 08:19:38
Problema Nums Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <algorithm>
#include <fstream>
#include <vector>
#include <string>
using namespace std;

#define pb push_back
#define mp make_pair
#define DIM 1000005
#define sc second
#define fs first

ifstream fin ("nums.in");
ofstream fout ("nums.out");

vector <pair <string,int> > v;
int op[DIM];
int n,m;

void read ()
{
    char buff[DIM];
    int i,tip;


    fin>>n;
    for (i=1; i<=n; ++i)
    {
        fin>>tip;
        if (tip)
        {
            fin>>buff;
            v.pb (mp (buff,++m));
        }
        else
            fin>>op[i];
    }
}

struct cmp
{
    bool operator () (const pair <string,int> &a,const pair <string,int> &b)
    {
        return a.fs.size ()<b.fs.size () || (a.fs.size ()==b.fs.size () && a.fs<b.fs);
    }
};

void solve ()
{
    vector <pair <string,int> > :: iterator it;
    int i;

    sort (v.begin (),v.end (),cmp ());
    for (it=v.begin (); it!=v.end (); ++it)
        fout<<it->fs<<" "<<it->sc<<"\n";
}

int main ()
{
    read ();
    solve ();

    return 0;
}