結果

問題 No.8016 unordered_mapなるたけ落とすマン
ユーザー kuuso1
提出日時 2016-05-22 17:04:03
言語 C#(csc)
(csc 3.9.0)
結果
MLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,099 bytes
コンパイル時間 1,052 ms
コンパイル使用メモリ 112,540 KB
実行使用メモリ 48,852 KB
最終ジャッジ日時 2024-10-07 06:31:26
合計ジャッジ時間 20,225 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 47 MLE * 1
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;

class TEST{
	static void Main(){
		var d = ria();
		int N = d[0];
		int M = d[1];
		long[] A = rla();
		long[] B = rla();
		
		int[] C = new int[N+2];
		long[] D = new long[N+2];
		for(int i=0;i<N+2;i++)D[i] = (long)1e18;
		D[0] = -1;
		
		int ptr = 0;
		long bak = -1;
		Array.Sort(A);
		for(int i=0;i<N;i++){
			if( bak != A[i] ){
				ptr++;
				D[ptr] = A[i];
				bak = A[i];
			}
		}
		ptr = 1;
		for(int i=0;i<N;i++){
			if( D[ptr] != A[i]){
				ptr++;
			}
			C[ptr]++;
		}
		
		for(int i=0;i<M;i++){
			
			int l = 0;
			int r = ptr+1;
			int c = 0;
			
			int ret = 0;
			
			while(r-l>1){
				c = (l+r)/2;
				if(D[c]<B[i]){
					l = c;
				}else{
					r = c;
				}
			}
			while( c>0 && D[c]>=B[i] )c--;
			while( c<ptr && D[c]<B[i] )c++;
			
			ret = 0;
			if(D[c] == B[i]) ret = C[c];
			Console.Write(i==0?"{0}":" {0}",ret);
		}
		Console.WriteLine();
	}
	
	static int[] ria(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>int.Parse(e));}
	static long[] rla(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>long.Parse(e));}
}
0