Submission #4540649


Source Code Expand

#include <bits/stdc++.h>
#define rep(i, n) for (rint i = 1; i <= (n); i ++)
#define re0(i, n) for (rint i = 0; i < (int) n; i ++)
#define travel(i, u) for (rint i = head[u]; i; i = e[i].nxt)
#define rint register int
using namespace std;

typedef long long lo;

template<typename tp> inline void read(tp &x) {
    x = 0; char c = getchar(); int f = 0;
    for (; c < '0' || c > '9'; f |= c == '-', c = getchar());
    for (; c >= '0' && c <= '9'; x = (x << 3) + (x << 1) + c - '0', c = getchar());
    if (f) x = -x;
}
const int N = 3e5 + 233;
int n, m, one[N], zero[N], ans;
map <int, int> mp;

int main(void) {
    read(n); read(m);
    rep (i, n) {
	int x; read(x); mp[x]++;
    }
    for (auto i : mp) {
	int res = i.first % m;
	one[res] += i.second & 1;
	zero[res] += i.second - (i.second & 1);
    }
    ans += one[0] / 2 + zero[0] / 2;
    for (int i = 1; i < m - i; i++) {
	int one1 = one[i];
	int zero1 = zero[i];
	int one2 = one[m - i];
	int zero2 = zero[m - i];
	if (one1 < one2) swap(one1, one2), swap(zero1, zero2);
	ans += one2; one1 -= one2; one2 = 0;
	if (zero2 < one1) {
	    ans += zero2;
	} else {
	    ans += one1 + (zero2 - one1) / 2;
	}
	ans += zero1 / 2;	
    }
    if (m % 2 == 0) {
	ans += one[m / 2] / 2 + zero[m / 2] / 2;
    }
    cout << ans << "\n";
}

Submission Info

Submission Time
Task D - Pair Cards
User foreverpiano
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1331 Byte
Status AC
Exec Time 41 ms
Memory 5760 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 700 / 700
Status
AC × 2
AC × 34
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 1 ms 256 KB
01-02.txt AC 33 ms 3200 KB
01-03.txt AC 33 ms 3200 KB
01-04.txt AC 33 ms 3200 KB
01-05.txt AC 33 ms 3200 KB
01-06.txt AC 33 ms 3200 KB
01-07.txt AC 33 ms 3200 KB
01-08.txt AC 33 ms 3200 KB
01-09.txt AC 33 ms 3200 KB
01-10.txt AC 33 ms 3584 KB
01-11.txt AC 33 ms 3968 KB
01-12.txt AC 6 ms 256 KB
01-13.txt AC 6 ms 256 KB
01-14.txt AC 40 ms 4992 KB
01-15.txt AC 40 ms 4992 KB
01-16.txt AC 40 ms 4992 KB
01-17.txt AC 40 ms 4992 KB
01-18.txt AC 40 ms 4992 KB
01-19.txt AC 40 ms 4992 KB
01-20.txt AC 41 ms 5760 KB
01-21.txt AC 14 ms 384 KB
01-22.txt AC 14 ms 384 KB
01-23.txt AC 14 ms 384 KB
01-24.txt AC 14 ms 384 KB
01-25.txt AC 14 ms 640 KB
01-26.txt AC 14 ms 1152 KB
01-27.txt AC 19 ms 2944 KB
01-28.txt AC 3 ms 1152 KB
01-29.txt AC 2 ms 640 KB
01-30.txt AC 2 ms 384 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB