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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ьнпкфзр
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 5
#1

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

16.02.2013, 15:48. Просмотров 391. Ответов 7
Метки нет (Все метки)

Согласно регламенту каждая задача оценивается определённым количеством баллов. Правильно решённая задача даёт команде именно столько баллов. Выигрывает команда, набравшая наибольшее количество баллов. Если две или более команд набирают одинаковое количество баллов, то выигрывает команда, решившая наименьшее количество задач. Если и таких команд оказывается несколько, то выигрывает команда, имеющая наименьшее количество сдач (как успешных, так и безуспешных). Если по-прежнему победитель не определился, то выигрывает команда с наименьшим номером. Ваша задача - по итогам 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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
1920 / 1032 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
16.02.2013, 16:01     По итогам MCA турнира составить итоговую таблицу #2
может за вас ещё и сдать пойти? давайте промежуточные варианты, что не получается?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
16.02.2013, 16:20     По итогам MCA турнира составить итоговую таблицу #3
Цитата Сообщение от l_a_m Посмотреть сообщение
может за вас ещё и сдать пойти? давайте промежуточные варианты, что не получается?

Не по теме:

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

Maxim Prishchepa
Эксперт С++
1920 / 1032 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
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++
C++ Составить таблицу 3х10
C++ Составить таблицу значений функии

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

Или воспользуйтесь поиском по форуму:
avfed
15 / 13 / 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 турнира составить итоговую таблицу
Ответ Создать тему
Опции темы

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