Submission #992941
Source Code Expand
#include<iostream> #include<iomanip> #include<map> #include<unordered_map> #include<set> #include<unordered_set> #include<vector> #include<array> #include<string> #include<stack> #include<queue> #include<algorithm> #include<cassert> #include<functional> #include<random> #include<complex> #include<bitset> #include<chrono> //#include<boost/multiprecision/cpp_int.hpp> #define int int64_t #define uint uint64_t #define REP(i, a, b) for (int64_t i = (int64_t)(a); i < (int64_t)(b); i++) #define rep(i, a) REP(i, 0, a) #define EACH(i, a) for (auto i: a) #define ITR(x, a) for (auto x = a.begin(); x != a.end(); x++) #define ALL(a) (a.begin()), (a.end()) #define HAS(a, x) (a.find(x) != a.end()) #define Min(x) *min_element(ALL(x)) #define Max(x) *max_element(ALL(x)) #define Unique(L) (L.erase(unique(ALL(L)), L.end())) #define veccat(v1, v2) std::copy((v2).begin(),(v2).end(),std::back_inserter(v1)/*v1の後ろにv2を入れる*/) #define intmax (std::numeric_limits<int64_t>::max() / 4) using namespace std; //typedef boost::multiprecision::cpp_int bigint; const double EPS = 1e-9; const double PI = acos(-1.0); signed main() { cin.tie(0); ios::sync_with_stdio(false); int N, M; cin >> N >> M; vector<int>card(100001); rep(i, N) { int X; cin >> X; card[X]++; } int ans = 0; vector<int>pair_modM(M); rep(i, 100001) { pair_modM[i%M] += card[i] / 2; ans += card[i] / 2; card[i] %= 2; } vector<int>card_modM(M); rep(i, 100001)if (card[i]) { card_modM[i%M]++; } ans += card_modM[0] / 2; card_modM[0] %= 2; if (M % 2 == 0) { ans += card_modM[M / 2] / 2; card_modM[M / 2] %= 2; } REP(i, 1, M) { if (M <= i * 2)break; const int mmm = min(card_modM[i], card_modM[M - i]); ans += mmm; card_modM[i] -= mmm; card_modM[M - i] -= mmm; } rep(i, M) { if (2 <= card_modM[i]) { if (pair_modM[M - i]) { const int mmm = min(pair_modM[M - i], card_modM[i] / 2); ans += mmm; pair_modM[M - i] -= mmm; card_modM[i] -= mmm * 2; } } } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - Pair Cards |
User | eukaryo |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 2115 Byte |
Status | AC |
Exec Time | 16 ms |
Memory | 2560 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 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 5 ms | 1024 KB |
01-02.txt | AC | 14 ms | 1024 KB |
01-03.txt | AC | 14 ms | 1024 KB |
01-04.txt | AC | 14 ms | 1024 KB |
01-05.txt | AC | 14 ms | 1024 KB |
01-06.txt | AC | 14 ms | 1024 KB |
01-07.txt | AC | 14 ms | 1024 KB |
01-08.txt | AC | 14 ms | 1024 KB |
01-09.txt | AC | 14 ms | 1024 KB |
01-10.txt | AC | 15 ms | 1664 KB |
01-11.txt | AC | 16 ms | 2560 KB |
01-12.txt | AC | 13 ms | 1024 KB |
01-13.txt | AC | 14 ms | 1792 KB |
01-14.txt | AC | 14 ms | 1024 KB |
01-15.txt | AC | 14 ms | 1024 KB |
01-16.txt | AC | 14 ms | 1024 KB |
01-17.txt | AC | 14 ms | 1024 KB |
01-18.txt | AC | 14 ms | 1152 KB |
01-19.txt | AC | 15 ms | 1280 KB |
01-20.txt | AC | 16 ms | 2560 KB |
01-21.txt | AC | 13 ms | 1024 KB |
01-22.txt | AC | 13 ms | 1024 KB |
01-23.txt | AC | 13 ms | 1024 KB |
01-24.txt | AC | 13 ms | 1024 KB |
01-25.txt | AC | 14 ms | 1536 KB |
01-26.txt | AC | 15 ms | 2560 KB |
01-27.txt | AC | 12 ms | 2560 KB |
01-28.txt | AC | 8 ms | 2560 KB |
01-29.txt | AC | 6 ms | 1664 KB |
01-30.txt | AC | 7 ms | 2560 KB |
sample-01.txt | AC | 5 ms | 1024 KB |
sample-02.txt | AC | 5 ms | 1024 KB |