ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1100. Таблица результатов

What is the wrong in this code??
Послано SHANTO ISLAM 20 апр 2023 09:32
//URAL-1100-FINAL STANDINGS

//---------------------------------
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'


bool comp(pair<int,int>a,pair<int,int>b)
{
    return a.second>b.second;
}
void sortt(map<int,int>mp)
{
    vector<pair<int,int>>v;
    for(auto it:mp)
    {
        v.push_back(it);
    }

    stable_sort(v.begin(),v.end(),comp);
    for(auto it:v)
    {
        cout<<it.first<<" "<<it.second<<endl;

    }
}
int main()
{
    map<int,int>mp;
    int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        int x,y;
        cin>>x>>y;
        mp[x]=y;
    }
    sortt(mp);


    return 0;
}
Re: What is the wrong in this code??
Послано Hristo Nikolaev (B&W) 20 апр 2023 16:07
You are expecting the map to preserve the order. It does not - it sorts by key.
Try using unordered_map<int, int> mp