Submission #994683


Source Code Expand

import static java.lang.System.in;
import static java.lang.System.out;

import java.io.*;
import java.util.*;

public class Main {
	static final double EPS = 1e-10;
	static final double INF = 1L << 31;
	static final double PI = Math.PI;

	public static Scanner sc = new Scanner(in);
	StringBuilder sb = new StringBuilder();
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	public void run() throws IOException {
		String input;
		String[] inputArray;
		input = br.readLine();
		inputArray = input.split(" ");
		int n = Integer.valueOf(inputArray[0]);
		int m = Integer.valueOf(inputArray[1]);
		int [] mods = new int[m];

		input = br.readLine();
		inputArray = input.split(" ");
		int ans = 0;
		HashSet<Integer> set = new HashSet<Integer>();
		int [] pairs = new int[m];
		for (int i=0; i<n; i++){	
			int x = Integer.valueOf(inputArray[i]);
			if (set.contains(x)){
				set.remove(x);
				pairs[x%m]++;				
			} else{
				set.add(x);
			}
			mods[x%m]++;
		}	
		ans += mods[0]/2;
		for (int i=1; i<(m+1)/2; i++){
			ans += Math.min(mods[i],mods[m-i]);
			if (mods[i]>mods[m-i]){
				ans += Math.min((mods[i]-mods[m-i])/2, pairs[i]);
			} else{
				ans += Math.min((mods[m-i]-mods[i])/2, pairs[m-i]);
			}
		}
		if (m%2==0){
			ans+=mods[m/2]/2;
		}
//		for (int i=0; i<m; i++)
//			sb.append(mods[i] + " ");
//		ln(sb);
		ln(ans);

	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}
	public static void ln(Object obj) {
		out.println(obj);
	}
}

Submission Info

Submission Time
Task D - Pair Cards
User batchunag
Language Java7 (OpenJDK 1.7.0)
Score 700
Code Size 1580 Byte
Status AC
Exec Time 524 ms
Memory 36944 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 135 ms 9044 KB
01-02.txt AC 356 ms 36308 KB
01-03.txt AC 346 ms 36132 KB
01-04.txt AC 373 ms 36228 KB
01-05.txt AC 356 ms 36144 KB
01-06.txt AC 399 ms 35348 KB
01-07.txt AC 408 ms 36632 KB
01-08.txt AC 422 ms 36332 KB
01-09.txt AC 353 ms 36056 KB
01-10.txt AC 372 ms 36200 KB
01-11.txt AC 369 ms 36944 KB
01-12.txt AC 356 ms 34972 KB
01-13.txt AC 352 ms 34364 KB
01-14.txt AC 336 ms 36472 KB
01-15.txt AC 327 ms 36560 KB
01-16.txt AC 338 ms 36396 KB
01-17.txt AC 349 ms 36712 KB
01-18.txt AC 341 ms 36324 KB
01-19.txt AC 524 ms 36492 KB
01-20.txt AC 336 ms 36536 KB
01-21.txt AC 374 ms 35176 KB
01-22.txt AC 364 ms 35544 KB
01-23.txt AC 366 ms 35332 KB
01-24.txt AC 385 ms 35264 KB
01-25.txt AC 378 ms 35584 KB
01-26.txt AC 397 ms 36072 KB
01-27.txt AC 295 ms 23692 KB
01-28.txt AC 207 ms 13832 KB
01-29.txt AC 153 ms 9940 KB
01-30.txt AC 152 ms 10452 KB
sample-01.txt AC 135 ms 8916 KB
sample-02.txt AC 128 ms 8916 KB