Решение задачи Объединяй! с Codeforces

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


Задан массив a, состоящий из n целых чисел a1,a2,…,an.

За одну операцию можно выбрать два элемента массива и заменить их на элемент, равный их сумме (не важно, куда в массиве вы вставите новый элемент). Например, из массива [2,1,4] можно получить следующие массивы: [3,4], [1,6] и [2,5].

Можно произвести данную операцию произвольное (возможно, нулевое) количество раз.

Ваша задача — найти максимально возможное количество элементов, кратных 3, которые могут получиться в массиве после применения этой операции любое (возможно, нулевое) количество раз.

Требуется ответить на t независимых запросов.

Код

#include <bits/stdc++.h>
using namespace std;
int t,n,a[105];
int main(){
    ios::sync_with_stdio(false);
    cin>>t;
    while (t--){
        cin >> n;
        int b[3] = {0,0,0};
        for(int i = 1; i <= n; i++){
            cin >> a[i]; 
            b[a[i] % 3]++;
        }   
        int ans = b[0] + min(b[1], b[2]);
        ans += abs(b[2] - b[1]) / 3;
        cout << ans << endl;
    }
}

         

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



Комментарии

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