package com.hustdj; import java.util.Scanner; public class Bookshelf_pdd { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] books = new int[n]; for (int i = 0; i < n; i++) { books[i]=scanner.nextInt(); } int m = scanner.nextInt(); int[] target = new int[m]; for (int i = 0; i < m; i++) { target[i]=scanner.nextInt(); } Bookshelf_pdd obj = new Bookshelf_pdd(); int[] level = obj.findLevel(n, books, target); for (int i = 0; i < level.length; i++) { System.out.println(level[i]); } } public int[] findLevel(int n,int[] books,int[] target){ int[] nums = new int[n + 1]; int[] res = new int[target.length]; int sum = books[0]; nums[0]=1; for (int i = 1; i < n; i++) { nums[i]=nums[i-1]+sum; sum=books[i]; } nums[n]=nums[n-1]+sum-1; for (int i = 0; i < target.length; i++) { int one = findOne(nums, target[i]); res[i]=one+1; } return res; } public int findOne(int[] nums,int target){ int left=0; int right=nums.length-1; while(left<=right){ int mid = left+(right-left)/2; if (nums[mid]==target){ return mid; }else if (nums[mid]>target){ right = mid-1; }else{ left = mid+1; } } return left-1; } }
全部评论
(0) 回帖