Submission #992956


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
int N,M;
vector<int> v;
int same[100001];//1ペアで1
int p[100001];
int main(){
        REP(i,100001){
            same[i]=0;
            p[i]=0;
        }
	cin>>N>>M;
	//Mが1の対策
	if(M==1){
	   cout<<N/2<<endl;
	   return 0;
	}
	REP(i,N){
	    int a;
	    cin>>a;
            v.push_back(a);
	}
        sort(v.begin(),v.end());
        int temp=v[0];
        p[temp%M]++;
        for(int i=1;i<N;i++){
            if(v[i]==temp){
               same[temp%M]++;
               p[temp%M]++;
               if(i!=N-1){
                  temp=v[i+1];
                  p[temp%M]++;
               }
               i++;
               continue;
            }
            temp=v[i];
            p[temp%M]++;
        }
      /*  REP(i,M){
            cout<<"p["<<i<<"]="<<p[i]<<" "<<same[i]<<endl;
        }*/
        long long ans=0;
        REP(i,M/2+1){
            if(i==0){
                ans+=p[i]/2;
                continue;
            }
            if((M%2==0)&&(i==M/2)){
                ans+=p[i]/2;
               // cout<<p[i]/2<<endl;
                break;
            }
            int a=min(p[i],p[M-i]);
            //cout<<p[i]<<"a"<<p[M-i]<<endl;
            p[i]-=a;
            p[M-i]-=a;
            ans+=a;
            int b=min(p[i]/2,same[i]);
            int c=min(p[M-i]/2,same[M-i]);
            ans+=b;
            ans+=c;
            //cout<<a<<" "<<b<<" "<<c<<endl;
        }
        cout<<ans<<endl;
	return(0);
}

Submission Info

Submission Time
Task D - Pair Cards
User rapurasu
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1745 Byte
Status AC
Exec Time 44 ms
Memory 1660 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 700 / 700
Status
AC × 2
AC × 32
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 3 ms 1024 KB
01-02.txt AC 3 ms 1024 KB
01-03.txt AC 43 ms 1660 KB
01-04.txt AC 43 ms 1660 KB
01-05.txt AC 43 ms 1660 KB
01-06.txt AC 42 ms 1660 KB
01-07.txt AC 42 ms 1660 KB
01-08.txt AC 43 ms 1660 KB
01-09.txt AC 43 ms 1660 KB
01-10.txt AC 44 ms 1660 KB
01-11.txt AC 43 ms 1660 KB
01-12.txt AC 38 ms 1660 KB
01-13.txt AC 39 ms 1660 KB
01-14.txt AC 43 ms 1660 KB
01-15.txt AC 43 ms 1660 KB
01-16.txt AC 43 ms 1660 KB
01-17.txt AC 43 ms 1660 KB
01-18.txt AC 42 ms 1660 KB
01-19.txt AC 43 ms 1660 KB
01-20.txt AC 42 ms 1660 KB
01-21.txt AC 41 ms 1660 KB
01-22.txt AC 42 ms 1660 KB
01-23.txt AC 41 ms 1660 KB
01-24.txt AC 42 ms 1660 KB
01-25.txt AC 42 ms 1660 KB
01-26.txt AC 42 ms 1660 KB
01-27.txt AC 23 ms 1408 KB
01-28.txt AC 5 ms 1024 KB
01-29.txt AC 3 ms 1024 KB
01-30.txt AC 3 ms 1024 KB
sample-01.txt AC 3 ms 1024 KB
sample-02.txt AC 3 ms 1024 KB