Решение задачи "Важный экзамен" с Codeforces

Без пояснения   Просмотров: 12


Группа студентов написала экзамен в виде теста.

Всего в группе было n студентов, а тест состоял из m вопросов, каждый из которых имел 5 вариантов ответа (A, B, C, D или Е). На каждый вопрос есть ровно один правильный ответ. Правильный ответ на i-й вопрос даёт ai баллов. Неправильные ответы оцениваются нулём баллов.

Студенты помнят, какие ответы они дали на экзамене, но не знают, какие ответы являются правильными. Они настроены достаточно оптимистично, а потому интересуются насколько большим может быть суммарный балл всех студентов группы.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    long long n, k, t;
    cin >>  n >> k;
    char ch;
    vector<string> str;
    vector<long long> a;
    for(long long j = 0; j < k; ++j){
       str.push_back("0");
    }
    for(long long i = 0; i < n; ++i){
        for(long long j = 0; j < k; ++j){
           cin >> ch;
           str[j]+=ch;
        }
    }
    for(long long i = 0; i < k; ++i){
        cin >> t;
        a.push_back(t);
    }
 
 
 
 
 
 
    long long res = 0;
    for(long long i = 0; i < str.size(); ++i){
        long long maxk = 0, k = 1;
        string temp = str[i];
        sort(temp.begin(), temp.end());
        for(long long i = 1; i < temp.size(); ++i){
            if(temp[i] == temp[i + 1])
                ++k;
            else{
                if(maxk < k)
                    maxk = k;
                k = 1;
            }
        }
        res+=a[i] * maxk;
    }
    cout << res;
    return 0;
}
/*
    2 3
    ABC
    ABC
    3 6 5
*/

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться