Решение задачи Подготовка к 8 марта с Codeforces

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


Совсем скоро наступит Международный женский день! Поликарп готовится к празднику.

В магазине продается n коробок с конфетами, в i-й коробке di конфет.

Поликарп хочет подготовить максимальное количество подарков для k подруг. Каждый подарок будет состоять из ровно двух коробок конфет. Чтобы k девушек могли поделить подарок поровну, сумма количеств конфет в подарке (в паре коробок) должна делится на k. Иными словами, две коробки i и j (i≠j) можно объединить в подарок, если di+dj делится на k.

Сколько максимум коробок сможет подарить Поликарп? Конечно, каждая коробка может быть в составе не более одного подарка. Поликарп не может использовать коробки «частично» или перераспределять конфеты между ними.

Код

#include <bits/stdc++.h>
using namespace std;
int n,k,ans=0;
int a[105];
int main(){
	cin>>n>>k;
	int b;
	for (int i = 0; i < n; ++i){
		cin>>b;
		if(a[(k-b%k)%k]){
			ans++;
			a[(k-b%k)%k]--;
		}
		else a[b%k]++;
	}
	cout<<2*ans<<endl;
	return 0;
}

         

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



Комментарии

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