Submission #11229197


Source Code Expand

#include <algorithm>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define rep(i, n) for(int(i) = 0; (i) < (n); (i)++)
#define FOR(i, m, n) for(int(i) = (m); (i) < (n); (i)++)
#define All(v) (v).begin(), (v).end()
#define pb push_back
#define MP(a, b) make_pair((a), (b))
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
const int INF = 1 << 30;
const ll LINF = 1LL << 60;
const int MOD = 1e9 + 7;

int main() {
    int N, M;
    cin >> N >> M;
    vector<int> X(N);
    rep(i, N) cin >> X[i];
    sort(All(X));
    vector<int> mod(M + 1);
    vector<int> hist(100010);
    vector<int> same(M + 1);
    rep(i, N) {
        mod[X[i] % M]++;
        hist[X[i]]++;
        if(hist[X[i]] % 2 == 0)
            same[X[i] % M]++;
    }
    int res = 0;
    rep(i, M / 2 + 1) {
        if(i == 0 || (M % 2 == 0 && i == M / 2))
            res += mod[i] / 2;
        else {
            int a = mod[i];
            int b = mod[M - i];
            int c = same[i];
            int d = same[M - i];
            if(a < b) {
                swap(a, b);
                swap(c, d);
            }
            res += min(a, b);
            a -= b;
            res += min(c, a / 2);
        }
    }
    cout << res << endl;
    return 0;
}

Submission Info

Submission Time
Task D - Pair Cards
User rokahikou
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1477 Byte
Status AC
Exec Time 38 ms
Memory 1792 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 640 KB
01-02.txt AC 36 ms 1024 KB
01-03.txt AC 36 ms 1024 KB
01-04.txt AC 36 ms 1024 KB
01-05.txt AC 36 ms 1024 KB
01-06.txt AC 36 ms 1024 KB
01-07.txt AC 38 ms 1024 KB
01-08.txt AC 36 ms 1024 KB
01-09.txt AC 36 ms 1024 KB
01-10.txt AC 36 ms 1408 KB
01-11.txt AC 37 ms 1792 KB
01-12.txt AC 31 ms 1024 KB
01-13.txt AC 31 ms 1408 KB
01-14.txt AC 36 ms 1024 KB
01-15.txt AC 36 ms 1024 KB
01-16.txt AC 38 ms 1024 KB
01-17.txt AC 36 ms 1024 KB
01-18.txt AC 36 ms 1024 KB
01-19.txt AC 36 ms 1152 KB
01-20.txt AC 36 ms 1792 KB
01-21.txt AC 35 ms 1024 KB
01-22.txt AC 35 ms 1024 KB
01-23.txt AC 35 ms 1024 KB
01-24.txt AC 35 ms 1024 KB
01-25.txt AC 35 ms 1280 KB
01-26.txt AC 36 ms 1792 KB
01-27.txt AC 19 ms 1664 KB
01-28.txt AC 3 ms 1408 KB
01-29.txt AC 2 ms 896 KB
01-30.txt AC 2 ms 1408 KB
sample-01.txt AC 1 ms 640 KB
sample-02.txt AC 1 ms 640 KB