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

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

C++ solution(0.234s)
Послано Asif Anwar Sajid 3 апр 2021 12:10
#include <bits/stdc++.h>

using namespace std;
#define pb push_back
#define FastIO ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define F first
#define S second
typedef long long ll;
typedef vector< int > vi;
typedef vector< ll > VI;
typedef map< int, int > mp;
typedef vector< pair< int, int > > vp;
#define debug cout << -1 << endl;
#define REP(i, a, b) for(int i=a; i<b; i++)
//#define sort(a) sort(a.begin(), a.end())
#define pop pop_back
const ll MOD = 1000000007;

bool cmp(pair< pair< int, int >, int > a, pair< pair< int, int >, int > b)
{
    if(a.F.F==b.F.F) {
        return a.S < b.S;
    }
    return a.F.F > b.F.F;
}

void solve()
{
    int n;
    cin >> n;
    vector< pair< pair< int, int >, int > > v;
    for(int i=0; i<n; i++) {
        int x, y;
        cin >> x >> y;
        v.pb({{y, x}, i});
    }
    sort(v.begin(), v.end(), cmp);
    for(int i=0; i<n; i++) {
        cout << v[i].F.S << " " << v[i].F.F << endl;
    }
    return;
}

int main()
{
    FastIO;
    int t;
    t = 1;
    while(t--){
        solve();
    }
    return 0;
}