Pagini recente » Cod sursa (job #1560169) | Cod sursa (job #1683034) | Cod sursa (job #1581625) | Cod sursa (job #1447072) | Cod sursa (job #2113168)
#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;
}