Submission #1251889

#TimeUsernameProblemLanguageResultExecution timeMemory
1251889vampirrIntercastellar (JOI22_ho_t1)Java
100 / 100
1198 ms191424 KiB
import java.util.*;
public class Main {
	
	public static int[] findlog2(int n) {
		int div=1;
		while (n%div==0) {
			div*=2;
		}
		
		div/=2;
		return new int[] {div,n/div};
	}
	
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		TreeMap<Long, Integer> tm = new TreeMap<>();
		long curridx=0;
		
		
		for (int i=0; i<N; i++) {
			int a=in.nextInt();
			int[] log = findlog2(a);
			tm.put(curridx+(long) log[0], log[1]);
			curridx+=log[0];
		}
		
		int Q = in.nextInt();
		while (Q-->0) {
			long a=in.nextLong();
			System.out.println(tm.get(tm.ceilingKey(a)));
		}
		in.close();
	}

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...