Cod sursa(job #2113168)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 24 ianuarie 2018 12:19:13
Problema Nums Scor 0
Compilator cpp Status done
Runda Simulare 43 Marime 1.52 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#define intrare "nums.in"
#define iesire "nums.out"

using namespace std;

ifstream in(intrare);
ofstream out(iesire);

int tasks, actual_number = 1;
struct numbers
{
    char num[100005];
};
numbers sir[10005];

bool compare(numbers a, numbers b)
{
    if(strlen(a.num) > strlen(b.num))
        return false;
    else if(strlen(a.num) < strlen(b.num))
        return true;
    else
    {
        for(unsigned i = 0; i < strlen(a.num); i++)
            if((int)a.num[i] > (int)b.num[i])
                return false;
            else if((int)a.num[i] < (int)b.num[i])
                return true;
    }
}

bool Check_Prezent(char model[])
{
    for(int i = 1; i < actual_number; i++)
        if(strcmp(model, sir[i].num) == 0)
            return false;
    return true;
}

void ReadAndSolve()
{
    in >> tasks;
    for(int task = 1;  task <= tasks; task++)
    {
        int answer;
        in >> answer;
        if(answer == 0)
        {
            int pozition;
            in >> pozition;
            sort(sir + 1, sir + actual_number, compare);
            out << sir[pozition].num << "\n";
        }
        else if(answer == 1)
        {
            char number[100005];
            in >> number;
            if(Check_Prezent(number))
            {
                strcpy(sir[actual_number].num, number);
                actual_number++;
            }
        }
    }
}

int main()
{
    ReadAndSolve();
    return 0;
}