Submission #7895404


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,n) for(ll i = 0;i<((ll)(n));i++)
#define reg(i,a,b) for(ll i = ((ll)(a));i<=((ll)(b));i++)
#define irep(i,n) for(ll i = ((ll)(n)-1);i>=0;i--)
#define ireg(i,a,b) for(ll i = ((ll)(b));i>=((ll)(a));i--)
template<class T = int> using V = vector<T>;
template<class T = int> using VV = V< V<T> >;

/*
*/

ll n,m,ans=0;
V<ll> v[100010];

void init(){
	cin>>n>>m;
	rep(i,n){
		ll x;
		cin>>x;
		v[x%m].push_back(x);
	}
	rep(i,m)sort(v[i].begin(),v[i].end());
}

int main(void){
	init();
	reg(i,0,m/2){
		if(i==0 || i*2==m){
			ans+=v[i].size()/2;
			continue;
		}
		if(v[i].size()>v[m-i].size()){
			// v[m-i]を全てv[i]とマッチ
			ll match=0;
			for(int j=0; j<v[i].size()-1 && v[i].size()-v[m-i].size()>=match+2; j++){
				if(v[i][j]==v[i][j+1]){
					match+=2;
					j++;
				}
			}
			ans+=match/2 + v[m-i].size();
		}else{
			// v[i]を全てv[m-i]とマッチ
			ll match=0;
			for(int j=0; j<v[m-i].size()-1 && v[m-i].size()-v[i].size()>=match+2; j++){
				if(v[m-i][j]==v[m-i][j+1]){
					match+=2;
					j++;
				}
			}
			ans+=match/2 + v[i].size();
		}
	}
	cout<<ans<<endl;
	return 0;
}

Submission Info

Submission Time
Task D - Pair Cards
User RMQ
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1232 Byte
Status AC
Exec Time 40 ms
Memory 5760 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 2 ms 2560 KB
01-02.txt AC 38 ms 3704 KB
01-03.txt AC 38 ms 3552 KB
01-04.txt AC 37 ms 3772 KB
01-05.txt AC 37 ms 3580 KB
01-06.txt AC 36 ms 3968 KB
01-07.txt AC 36 ms 3456 KB
01-08.txt AC 36 ms 3840 KB
01-09.txt AC 35 ms 3840 KB
01-10.txt AC 40 ms 4224 KB
01-11.txt AC 40 ms 4736 KB
01-12.txt AC 33 ms 3704 KB
01-13.txt AC 33 ms 3704 KB
01-14.txt AC 37 ms 3548 KB
01-15.txt AC 37 ms 3696 KB
01-16.txt AC 36 ms 3968 KB
01-17.txt AC 35 ms 3712 KB
01-18.txt AC 36 ms 4224 KB
01-19.txt AC 37 ms 3840 KB
01-20.txt AC 39 ms 5760 KB
01-21.txt AC 37 ms 3536 KB
01-22.txt AC 36 ms 3672 KB
01-23.txt AC 35 ms 3712 KB
01-24.txt AC 34 ms 3840 KB
01-25.txt AC 35 ms 3968 KB
01-26.txt AC 36 ms 3968 KB
01-27.txt AC 20 ms 4096 KB
01-28.txt AC 4 ms 2688 KB
01-29.txt AC 3 ms 2560 KB
01-30.txt AC 3 ms 2560 KB
sample-01.txt AC 2 ms 2560 KB
sample-02.txt AC 2 ms 2560 KB