Submission #5890039
Source Code Expand
#include <bits/stdc++.h>
#define GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME
#define pr(...) cerr<< GET_MACRO(__VA_ARGS__,pr8,pr7,pr6,pr5,pr4,pr3,pr2,pr1)(__VA_ARGS__) <<endl
#define pr1(a) (#a)<<"="<<(a)<<" "
#define pr2(a,b) pr1(a)<<pr1(b)
#define pr3(a,b,c) pr1(a)<<pr2(b,c)
#define pr4(a,b,c,d) pr1(a)<<pr3(b,c,d)
#define pr5(a,b,c,d,e) pr1(a)<<pr4(b,c,d,e)
#define pr6(a,b,c,d,e,f) pr1(a)<<pr5(b,c,d,e,f)
#define pr7(a,b,c,d,e,f,g) pr1(a)<<pr6(b,c,d,e,f,g)
#define pr8(a,b,c,d,e,f,g,h) pr1(a)<<pr7(b,c,d,e,f,g,h)
#define prArr(a) {cerr<<(#a)<<"={";int i=0;for(auto t:(a))cerr<<(i++?", ":"")<<t;cerr<<"}"<<endl;}
using namespace std;
using Int = long long;
using _int = int;
using ll = long long;
using Double = long double;
const Int INF = (1LL<<60)+1e9; // ~ 1.15 * 1e18
const Int mod = (1e9)+7;
const Double EPS = 1e-8;
const Double PI = 6.0 * asin((Double)0.5);
using P = pair<Int,Int>;
template<class T> T Max(T &a,T b){return a=max(a,b);}
template<class T> T Min(T &a,T b){return a=min(a,b);}
template<class T1, class T2> ostream& operator<<(ostream& o,pair<T1,T2> p){return o<<"("<<p.first<<","<<p.second<<")";}
template<class T1, class T2, class T3> ostream& operator<<(ostream& o,tuple<T1,T2,T3> t){
return o<<"("<<get<0>(t)<<","<<get<1>(t)<<","<<get<2>(t)<<")";}
template<class T1, class T2> istream& operator>>(istream& i,pair<T1,T2> &p){return i>>p.first>>p.second;}
template<class T> ostream& operator<<(ostream& o,vector<T> a){Int i=0;for(T t:a)o<<(i++?" ":"")<<t;return o;}
template<class T> istream& operator>>(istream& i,vector<T> &a){for(T &t:a)i>>t;return i;}
//INSERT ABOVE HERE
signed main(){
srand((unsigned)time(NULL));
cin.tie(0);
ios_base::sync_with_stdio(0);
cout << fixed << setprecision(12);
int N, M;
cin>>N>>M;
vector<int> X(N);
cin>>X;
map<int, int> cnt[M];
for(int x:X) cnt[x%M][x]++;
auto calc = [&](int a, int b){
if(a == b){
int sum = 0;
for(auto p:cnt[a]) sum += p.second;
return sum / 2;
}
vector<P> A, B;
for(auto p:cnt[a]) A.emplace_back(p.second, p.first);
for(auto p:cnt[b]) B.emplace_back(p.second, p.first);
sort(A.begin(), A.end());
sort(B.begin(), B.end());
int N = A.size(), M = B.size();
int res = 0;
int i = 0, j = 0;
while(i < N && j < M){
if(A[i].first == 0) i++;
if(B[j].first == 0) j++;
if(i == N || j == M) break;
res++;
A[i].first--;
B[j].first--;
}
while(i < N) res += A[i].first / 2, i++;
while(j < M) res += B[j].first / 2, j++;
return res;
};
int ans = 0;
for(int i=0;i<M;i++){
int a = i;
int b = (M - i) % M;
if(a <= b) ans += calc(a, b);
}
cout<<ans<<endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Pair Cards |
User |
haji |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2809 Byte |
Status |
WA |
Exec Time |
46 ms |
Memory |
9984 KB |
Judge Result
Set Name |
sample |
all |
Score / Max Score |
0 / 0 |
0 / 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 |
36 ms |
3584 KB |
01-03.txt |
AC |
36 ms |
3584 KB |
01-04.txt |
WA |
39 ms |
4732 KB |
01-05.txt |
WA |
38 ms |
4220 KB |
01-06.txt |
WA |
38 ms |
3968 KB |
01-07.txt |
WA |
37 ms |
3828 KB |
01-08.txt |
WA |
33 ms |
3712 KB |
01-09.txt |
WA |
30 ms |
3712 KB |
01-10.txt |
WA |
24 ms |
5504 KB |
01-11.txt |
AC |
23 ms |
8320 KB |
01-12.txt |
AC |
9 ms |
640 KB |
01-13.txt |
AC |
11 ms |
2688 KB |
01-14.txt |
AC |
43 ms |
5376 KB |
01-15.txt |
AC |
46 ms |
6532 KB |
01-16.txt |
AC |
43 ms |
5532 KB |
01-17.txt |
AC |
40 ms |
5376 KB |
01-18.txt |
AC |
36 ms |
5504 KB |
01-19.txt |
AC |
32 ms |
5888 KB |
01-20.txt |
AC |
27 ms |
9984 KB |
01-21.txt |
AC |
17 ms |
896 KB |
01-22.txt |
WA |
17 ms |
896 KB |
01-23.txt |
WA |
16 ms |
896 KB |
01-24.txt |
WA |
13 ms |
896 KB |
01-25.txt |
AC |
12 ms |
2304 KB |
01-26.txt |
AC |
13 ms |
5504 KB |
01-27.txt |
AC |
14 ms |
7552 KB |
01-28.txt |
AC |
5 ms |
5120 KB |
01-29.txt |
AC |
3 ms |
2176 KB |
01-30.txt |
AC |
4 ms |
4992 KB |
sample-01.txt |
AC |
1 ms |
256 KB |
sample-02.txt |
AC |
1 ms |
256 KB |