Форум программистов, компьютерный форум CyberForum.ru

По итогам MCA турнира составить итоговую таблицу - C++

Восстановить пароль Регистрация
 
ьнпкфзр
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 5
16.02.2013, 15:48     По итогам MCA турнира составить итоговую таблицу #1
Согласно регламенту каждая задача оценивается определённым количеством баллов. Правильно решённая задача даёт команде именно столько баллов. Выигрывает команда, набравшая наибольшее количество баллов. Если две или более команд набирают одинаковое количество баллов, то выигрывает команда, решившая наименьшее количество задач. Если и таких команд оказывается несколько, то выигрывает команда, имеющая наименьшее количество сдач (как успешных, так и безуспешных). Если по-прежнему победитель не определился, то выигрывает команда с наименьшим номером. Ваша задача - по итогам MCA турнира составить итоговую таблицу.

Входные данные
В первой строке содержатся два целых числа T - количество команд и P - количество задач (1 ≤ T ≤ 10, 1 ≤ P ≤ 10). Команды пронумерованы от 1 до T, задачи названы первыми P заглавными буквами латинского алфавита. Во второй строке записаны P целых чисел из отрезка [1,100] - количество баллов, которым оценены задачи. Третья строка содержит одно целое число S (1 ≤ S ≤ 200) - суммарное количество сдач за время турнира. В следующих S строках записаны результаты сдач в формате
<номер команды> <код задачи> A|R
буква A (Accepted) означает, что задача принята, буква R (Rejected) означает, что задача не принята. Данные в этих строках разделены ровно одним пробелом.

Выходные данные

Запишите итоговую таблицу турнира. Таблица должна занимать T строк, в каждой из которых должен быть записан номер команды и набранное командой количество баллов.
вход
2 2
5 10
3
1 B A
2 B A
1 A R
выход
2 10
1 10
вход
2 3
5 5 10
3
1 A A
1 B A
2 C A
выход
2 10
1 10
вход
3 3
5 5 5
5
1 A A
1 B R
2 B A
2 C R
3 C A 3 5
выход
1 5
2 5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 15:48     По итогам MCA турнира составить итоговую таблицу
Посмотрите здесь:

составить таблицу! C++
Составить таблицу значений C++
Составить таблицу значений C++
Дерево турнира с выбыванием C++
Составить таблицу ступенчатой функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
16.02.2013, 16:01     По итогам MCA турнира составить итоговую таблицу #2
может за вас ещё и сдать пойти? давайте промежуточные варианты, что не получается?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.02.2013, 16:20     По итогам MCA турнира составить итоговую таблицу #3
Цитата Сообщение от l_a_m Посмотреть сообщение
может за вас ещё и сдать пойти? давайте промежуточные варианты, что не получается?

Не по теме:

тролите новичков - ленивцев?

Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
16.02.2013, 16:24     По итогам MCA турнира составить итоговую таблицу #4
Цитата Сообщение от Van111 Посмотреть сообщение
тролите новичков - ленивцев?

Не по теме:

ну грех же мимо пройти

ьнпкфзр
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 5
16.02.2013, 16:40  [ТС]     По итогам MCA турнира составить итоговую таблицу #5
проблема в многоуровневой сортировке которую, очевидно, необходимо применить.
Kgfq
16.02.2013, 17:17
  #6

Не по теме:

ьнпкфзр, а сами-то пробовали? Думается мне, что нет. Кстати, забавный ник.

ьнпкфзр
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 5
16.02.2013, 17:58  [ТС]     По итогам MCA турнира составить итоговую таблицу #7
Конечно, пробовал.
Организовал все через pair<int, int>, однако ввиду моей некомпетентности(первый раз пользуюсь данной структурой) программа рантаймится после ввода 3 строки(перед считыванием 3 стр. первый раз использую структуру).
pair<кол-во балов, № команды> остальные данные в виде массивов(кол-во посылок, кол-во успешных посылок).
Однако, код не приведен потому что запостив эту задачу мне прежде всего хотелось бы узнать альтернативное решение без использования вспомогательных функций типа pair.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 19:21     По итогам MCA турнира составить итоговую таблицу
Еще ссылки по теме:

C++ Сортировка числовых массивов методом турнира с выбыванием
C++ Таблица хоккейного турнира
Составить таблицу значений функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
avfed
14 / 12 / 2
Регистрация: 24.01.2013
Сообщений: 23
16.02.2013, 19:21     По итогам MCA турнира составить итоговую таблицу #8
у меня вот такое получилось, вроде как даже работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
 
using namespace std;
 
struct comm
{
    int number;
    int trys;
    int score;
    comm(){number=0;trys=0;score=0;}
};
 
int main()
{
    int t,p;
    int i;
    cin >>t>>p;
    int *balls=new int[p];
    comm *bs=new comm[t];
    for (i=0;i<p;i++)
    {
        cin>>balls[i];
    }
    int s;
    cin >>s;
    int number;
    char task,res;
    for (i=0;i<s;i++)
    {
        cin>>number>>task>>res;
        bs[number-1].trys++;
        bs[number-1].number=number;
        if (res=='A')
        {
            bs[number-1].score+=balls[(int)(task-'A')];
        }
    }
 
    bool flag=true;
    comm temp;
    while(flag)
    {
        flag = false;
        for (i=1;i<t;i++)
        {
            if (bs[i].score>bs[i-1].score||bs[i].trys<bs[i-1].trys)
            {
                temp=bs[i];
                bs[i]=bs[i-1];
                bs[i-1]=temp;
                flag = true;
            }
        }
    }
 
    for (i=0;i<t;i++)
    {
        cout<<bs[i].number<<" "<<bs[i].score<<endl;
    }
    delete []balls;
    delete []bs;
 
    return 0;
}
Yandex
Объявления
16.02.2013, 19:21     По итогам MCA турнира составить итоговую таблицу
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru