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

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

Standard Template Library
Послано Madhav 11 июн 2008 17:19
Standard template library is not available or what?
i am getting compilation error for this problem.This is my code
<code>
#include<iostream>
#include<algorithm>
using namespace std;
class node{
        public:
                int id,prob;
                bool operator<(const node &n)const{
                        return (prob>n.prob);
                }
};
int main()
{
        int n;
        scanf("%d",&n);
        node arr[n];
        for(int i=0;i<n;i++){
                scanf("%d%d",&arr[i].id,&arr[i].prob);
        }
        sort(arr,arr+n);
        for(int i=0;i<n;i++)
        {
                printf("%d %d\n",arr[i].id,arr[i].prob);
        }
        return 0;
}
</code>

Edited by author 11.06.2008 17:19
Re: Standard Template Library
Послано [MSU Detritus] freopen 30 июл 2010 11:25
just replace sort funcion to stable_sort
Re: Standard Template Library
Послано dAFTc0d3r [Yaroslavl SU] 27 авг 2010 20:57
Madhav писал(a) 11 июня 2008 17:19
Standard template library is not available or what?
i am getting compilation error for this problem.This is my code
<code>
#include<iostream>
#include<algorithm>
using namespace std;
class node{
        public:
                int id,prob;
                bool operator<(const node &n)const{
                        return (prob>n.prob);
                }
};
int main()
{
        int n;
        scanf("%d",&n);
        node arr[n];
        for(int i=0;i<n;i++){
                scanf("%d%d",&arr[i].id,&arr[i].prob);
        }
        sort(arr,arr+n);
        for(int i=0;i<n;i++)
        {
                printf("%d %d\n",arr[i].id,arr[i].prob);
        }
        return 0;
}
</code>

Edited by author 11.06.2008 17:19

1) node arr[n]; << ??
node arr[150000];

2) If you put node arr[150000]; in main - you'll get stack overflow.
Make so:
node arr[150000];
int main()
{
        int n;
        scanf("%d",&n);
...

3) Use stabe_sort instead of sort, or you catch WA#4.

After that you'll get AC.
http://acm.timus.ru/status.aspx?space=1&count=1&from=3148125

Good luck!