Submission #993123
Source Code Expand
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <vector>
#include <map>
#include <set>
#include <deque>
#include <list>
#include <stack>
#include <queue>
#include <complex>
#include <ctime>
#include<cstdlib>
#define _USE_MATH_DEFINES
#include <math.h>
#include<cmath>
#include <cstdarg>
#include <iomanip>
#include<unordered_map>
#include<unordered_set>
//#include <arra.y>
//#define NDEBUG
#include <assert.h>
using namespace std;
#define dprint(Exp,...) if(Exp){fprintf(stderr, __VA_ARGS__);}
#define printe(...) fprintf(stderr, __VA_ARGS__);
#define PrtExp(_Exp) cerr<< #_Exp <<" = "<< (_Exp)
#define PrtExpN(_Exp) cerr<< #_Exp <<" = "<< (_Exp) <<"\n"
#define SINT(n) scanf("%d",&n);
#define SINT2(n,m) scanf("%d %d",&n,&m);
#define SINT3(n,m,o) scanf("%d %d %d",&n,&m,&o);
#define SINT4(n,m,o,p) scanf("%d %d %d %d",&n,&m,&o,&p);
#define SINT5(n,m,o,p,q) scanf("%d %d %d %d %d",&n,&m,&o,&p,&q);
//#define SLL(n) scanf("%I64d",&n);
#define SLL(n) scanf("%lld",&n);
#define SLL2(n,m) scanf("%lld %lld",&n,&m);
#define SLL3(n,m,o) scanf("%lld %lld %lld",&n,&m,&o);
#define SST(s) scanf("%s",s);
#define SCH(c) scanf("%c",&c);
#define GC() getchar();
#define PINT(n) printf("%d",(int)(n));
#define PINT2(n,m) printf("%d %d",(int)(n),(int)(m));
#define PINT3(n,m,l) printf("%d %d %d",(int)(n),(int)(m),(int)(l));
//#define PLL(n) printf("%I64d",(long long)(n));
#define PLL(n) printf("%lld",(long long)(n));
#define PST(s) printf("%s",(s));
#define PCH(s) printf("%c",(s));
#define PINTN(n) printf("%d\n",(int)(n));
#define PINT2N(n,m) printf("%d %d\n",(int)(n),(int)(m));
#define PINT3N(n,m,l) printf("%d %d %d\n",(int)(n),(int)(m),(int)(l));
//#define PLLN(n) printf("%I64d\n",(long long)(n));
#define PLLN(n) printf("%lld\n",(long long)(n));
#define PSTN(s) printf("%s\n",(s));
#define PCHN(s) printf("%c\n",(s));
#define PSP() printf(" ");
#define PN() printf("\n");
#define PC(c) putchar(c);
#define CSP (' ')
#define SN ("\n")
#define rep(i,a) for(int i=0;i<a;i++)
#define reP(i,a) for(int i=0;i<=a;i++)
#define Rep(i,a) for(int i=a-1;i>=0;i--)
#define ReP(i,a) for(int i=a;i>=0;i--)
#define rEp(i,a) for(i=0;i<a;i++)
#define rEP(i,a) for(i=0;i<=a;i++)
#define REp(i,a) for(i=a-1;i>=0;i--)
#define REP(i,a) for(i=a;i>=0;i--)
#define repft(i,a,b) for(i=a;i<b;i++)
#define repfT(i,a,b) for(i=a;i<=b;i++)
#define Repft(i,a,b) for(i=a-1;i>=b;i--)
#define RepfT(i,a,b) for(i=a;i>=b;i--)
#define foreach(a,it) for(auto it = a.begin(); it != a.end(); ++it)
#define FILL(a,v) fill(begin(a),end(a), v)
#define FILL0(a) memset(a,0,sizeof(a))
#define FILL1(a) memset(a,-1,sizeof(a))
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> Pi;
typedef pair<ll, ll> Pll;
const int INF = 0x1f1f1f1f;//522,133,279
const ll INFLL = 0x1f1f1f1f1f1f1f1fLL;//2,242,545,357,980,376,863
template <class A, class B> inline ostream& operator<<(ostream& st, const pair<A, B>& P) { return st << "(" << P.first << "," << P.second << ")"; };
template <class A, class B> inline pair<A, B> operator+(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first + Q.first, P.second + Q.second); };
template <class A, class B> inline pair<A, B> operator-(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first - Q.first, P.second - Q.second); };
ll bitcount(ll bits) {
bits = (bits & 0x5555555555555555) + (bits >> 1 & 0x5555555555555555);
bits = (bits & 0x3333333333333333) + (bits >> 2 & 0x3333333333333333);
bits = (bits & 0x0f0f0f0f0f0f0f0f) + (bits >> 4 & 0x0f0f0f0f0f0f0f0f);
bits = (bits & 0x00ff00ff00ff00ff) + (bits >> 8 & 0x00ff00ff00ff00ff);
bits = (bits & 0x0000ffff0000ffff) + (bits >> 16 & 0x0000ffff0000ffff);
return (bits & 0x00000000ffffffff) + (bits >> 32 & 0x00000000ffffffff);
}
vector<int> a[100000];
vector<int> b[100000];
int main() {
int n, m;
cin >> n >> m;
rep(i, n) {
int x;
cin >> x;
a[x%m].push_back(x);
}
int i;
repft(i, 1, m) {
sort(a[i].begin(), a[i].end());
rep(j, (int)(a[i].size())-1) {
if (a[i][j] == a[i][j + 1]) {
b[i].push_back(a[i][j]);
b[i].push_back(a[i][j]);
a[i][j] = a[i][j + 1] = -1;
j++;
}
}
for (auto&x : a[i]) {
if (x >= 0) {
b[i].push_back(x);
}
}
}
int ret = 0;
ret += a[0].size() / 2;
//cerr << " # " << ret << endl;
if (m % 2 == 0) {
ret += b[m / 2].size() / 2;
b[m / 2].clear();
}
//cerr << " # " << ret << endl;
for (i = 0; i * 2 < m; ++i) {
int I = m - i;
while (!b[i].empty() && !b[I].empty()) {
ret++;
b[i].pop_back();
b[I].pop_back();
}
}
repft(i, 1, m) {
rep(j, ((int)(b[i].size())) - 1) {
//cerr << i << " "<<j << endl;
if (b[i][j] == b[i][j + 1]) {
ret++;
j++;
}
}
}
cout << ret << endl;
}
Submission Info
Submission Time |
|
Task |
D - Pair Cards |
User |
TumoiYorozu |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
4978 Byte |
Status |
AC |
Exec Time |
58 ms |
Memory |
11136 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 |
7 ms |
4992 KB |
01-02.txt |
AC |
41 ms |
5628 KB |
01-03.txt |
AC |
44 ms |
5756 KB |
01-04.txt |
AC |
45 ms |
6008 KB |
01-05.txt |
AC |
45 ms |
5888 KB |
01-06.txt |
AC |
46 ms |
5888 KB |
01-07.txt |
AC |
46 ms |
5760 KB |
01-08.txt |
AC |
46 ms |
6144 KB |
01-09.txt |
AC |
46 ms |
6144 KB |
01-10.txt |
AC |
54 ms |
7296 KB |
01-11.txt |
AC |
58 ms |
8960 KB |
01-12.txt |
AC |
44 ms |
6136 KB |
01-13.txt |
AC |
44 ms |
6136 KB |
01-14.txt |
AC |
45 ms |
5648 KB |
01-15.txt |
AC |
45 ms |
5888 KB |
01-16.txt |
AC |
45 ms |
6272 KB |
01-17.txt |
AC |
45 ms |
6016 KB |
01-18.txt |
AC |
47 ms |
6528 KB |
01-19.txt |
AC |
49 ms |
6272 KB |
01-20.txt |
AC |
57 ms |
11136 KB |
01-21.txt |
AC |
43 ms |
5696 KB |
01-22.txt |
AC |
45 ms |
5760 KB |
01-23.txt |
AC |
44 ms |
6016 KB |
01-24.txt |
AC |
44 ms |
6144 KB |
01-25.txt |
AC |
46 ms |
6144 KB |
01-26.txt |
AC |
46 ms |
6144 KB |
01-27.txt |
AC |
31 ms |
8064 KB |
01-28.txt |
AC |
9 ms |
5120 KB |
01-29.txt |
AC |
8 ms |
4992 KB |
01-30.txt |
AC |
7 ms |
4992 KB |
sample-01.txt |
AC |
7 ms |
4992 KB |
sample-02.txt |
AC |
7 ms |
4864 KB |