Submission #7609178
Source Code Expand
#include "bits/stdc++.h" using namespace std; using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; using vi = vector<int>; using vl = vector<ll>; using vvi = vector<vi>; using vvl = vector<vl>; const ll INF = 1LL << 60; const ll MOD = 1000000007; template <class T> bool chmax(T &a, const T &b) { return (a < b) ? (a = b, 1) : 0; } template <class T> bool chmin(T &a, const T &b) { return (b < a) ? (a = b, 1) : 0; } template <class C> void print(const C &c, std::ostream &os = std::cout) { std::copy(std::begin(c), std::end(c), std::ostream_iterator<typename C::value_type>(os, " ")); os << std::endl; } int main() { int n, m; cin >> n >> m; vi x(n); map<int, multiset<int>> cnt; for (int i = 0; i < n; ++i) { cin >> x[i]; cnt[x[i] % m].insert(x[i]); } ll ret = 0; auto pairing = [&](int nmin, int &nmax, multiset<int> &mset) { auto it = mset.begin(); while (nmax > nmin && next(it) != mset.end()) { if (*it == *next(it)) { ret++; nmax -= 2; it = next(it, 2); } else { ++it; } } }; int mmax = m / 2; if (m % 2 == 1) mmax++; for (int i = 1; i < mmax; ++i) { int ni = cnt[i].size(); int nj = cnt[m - i].size(); auto it = cnt[m - i].begin(); if (ni > nj) pairing(nj, ni, cnt[i]); else if (ni < nj) pairing(ni, nj, cnt[m - i]); ret += min(ni, nj); } ret += cnt[0].size() / 2; if (m % 2 == 0) { ret += cnt[m / 2].size() / 2; } cout << ret << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Pair Cards |
User | kibuna |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1793 Byte |
Status | AC |
Exec Time | 94 ms |
Memory | 14720 KB |
Judge Result
Set Name | sample | all | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
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 | 61 ms | 5376 KB |
01-03.txt | AC | 61 ms | 5376 KB |
01-04.txt | AC | 61 ms | 5376 KB |
01-05.txt | AC | 61 ms | 5376 KB |
01-06.txt | AC | 63 ms | 5376 KB |
01-07.txt | AC | 61 ms | 5504 KB |
01-08.txt | AC | 62 ms | 5376 KB |
01-09.txt | AC | 63 ms | 5504 KB |
01-10.txt | AC | 75 ms | 9088 KB |
01-11.txt | AC | 94 ms | 14720 KB |
01-12.txt | AC | 50 ms | 5376 KB |
01-13.txt | AC | 62 ms | 9472 KB |
01-14.txt | AC | 61 ms | 5376 KB |
01-15.txt | AC | 61 ms | 5376 KB |
01-16.txt | AC | 62 ms | 5376 KB |
01-17.txt | AC | 62 ms | 5376 KB |
01-18.txt | AC | 63 ms | 5632 KB |
01-19.txt | AC | 65 ms | 6528 KB |
01-20.txt | AC | 89 ms | 14720 KB |
01-21.txt | AC | 64 ms | 5376 KB |
01-22.txt | AC | 64 ms | 5376 KB |
01-23.txt | AC | 64 ms | 5376 KB |
01-24.txt | AC | 65 ms | 5376 KB |
01-25.txt | AC | 74 ms | 8192 KB |
01-26.txt | AC | 92 ms | 14720 KB |
01-27.txt | AC | 62 ms | 12160 KB |
01-28.txt | AC | 27 ms | 9728 KB |
01-29.txt | AC | 10 ms | 3968 KB |
01-30.txt | AC | 30 ms | 9600 KB |
sample-01.txt | AC | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |