Submission #7606082


Source Code Expand

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>

using namespace std;

typedef long long ll;

int N, M, X[100000];
int amari[100000];
int cnt[100001];
map<int, int> xc[100000];
int use[100000];

int main() {
	cin >> N >> M;
	for (int i = 0; i < N; i++) {
		cin >> X[i];
		cnt[X[i]]++;
		amari[X[i] % M]++;
	}

	for (int i = 0; i < N; i++) {
		xc[X[i] % M][X[i]]++;
	}
	for (int i = 0; i < 100000; i++)use[i] = -1;

	int ans = 0;
	
	for (int i = 0; i < M; i++) {
		if (use[i] == -1) {
			if(!(M % 2 == 0 && i == M / 2) && !(i == 0))use[i] = min(amari[i], amari[M - i]);
			else use[i] = amari[i] / 2;

			ans += use[i];
			use[M - i] = use[i];
			//cout << ans << " " << i << " " << amari[i] << " " << amari[M - i] << endl;
		}
	}
	for (int i = 1; i < M; i++) {
		if (M % 2 == 0 && i == M / 2)continue;
		vector<int> tmp;
		for (auto it = xc[i].begin(); it != xc[i].end(); it++) {
			tmp.push_back((*it).second);
		}
		sort(tmp.begin(), tmp.end());

		int pointer = 0;
		while (pointer < tmp.size() && use[i] > 0) {
			if (use[i] >= tmp[pointer]) {
				use[i] -= tmp[pointer];
				tmp[pointer] = 0;
			}
			else {
				tmp[pointer] -= use[i];
				use[i] = 0;
			}
			pointer++;
		}
		for (int j = 0; j < tmp.size(); j++) {
			ans += (tmp[j] / 2);
		}
	}
	cout << ans << endl;
	return 0;
}

Submission Info

Submission Time
Task D - Pair Cards
User Sen
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1374 Byte
Status WA
Exec Time 65 ms
Memory 11440 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 0 / 700
Status
AC × 2
AC × 24
WA × 10
Set Name Test Cases
sample sample-01.txt, sample-02.txt
all sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
01-01.txt AC 3 ms 6400 KB
01-02.txt AC 57 ms 9472 KB
01-03.txt AC 56 ms 9472 KB
01-04.txt WA 58 ms 9728 KB
01-05.txt WA 57 ms 9600 KB
01-06.txt WA 58 ms 9472 KB
01-07.txt WA 57 ms 9472 KB
01-08.txt WA 53 ms 9472 KB
01-09.txt WA 51 ms 9472 KB
01-10.txt WA 44 ms 9472 KB
01-11.txt AC 42 ms 9472 KB
01-12.txt AC 32 ms 6528 KB
01-13.txt AC 32 ms 6528 KB
01-14.txt AC 62 ms 11136 KB
01-15.txt AC 65 ms 11440 KB
01-16.txt AC 63 ms 11264 KB
01-17.txt AC 61 ms 11136 KB
01-18.txt AC 57 ms 11136 KB
01-19.txt AC 52 ms 11136 KB
01-20.txt AC 45 ms 11136 KB
01-21.txt AC 39 ms 6656 KB
01-22.txt WA 39 ms 6656 KB
01-23.txt WA 38 ms 6656 KB
01-24.txt WA 35 ms 6656 KB
01-25.txt AC 33 ms 6656 KB
01-26.txt AC 33 ms 6656 KB
01-27.txt AC 24 ms 8704 KB
01-28.txt AC 5 ms 6528 KB
01-29.txt AC 4 ms 6400 KB
01-30.txt AC 4 ms 6400 KB
sample-01.txt AC 3 ms 6400 KB
sample-02.txt AC 3 ms 6400 KB