现在有n个从小到大排好序的数。有Q次询问,每次问你第一个数字k排在第几个?若不存在则输出n+1。
输入格式:
第一行两个整数n,Q。
第二行n个整数,表示已经从小到大排完序的数。
接下来Q行,每行一个整数k。
输出格式:
共Q行,每行一个整数,表示询问的数所在的位置。
样例输入:
3 2
1 2 3
2
3
样例输出:
2
3
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Selftext {
public static void main(String[] args) {
Map<Integer,Integer> aList=new HashMap<>();
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
String[] strings = string.split(" ");
int[] value=new int[strings.length];
for (int i = 0; i < strings.length; i++) {
value[i]=Integer.parseInt(strings[i]);
aList.put(Integer.parseInt(strings[i]), i);
}
Arrays.sort(value);
int index=aList.size(),count=0;
for (int i = 0; i < aList.size()-1; i++) {
if (aList.get(value[i])>aList.get(value[i+1])) {
aList.put(value[i+1], index++);
count++;
}
}
System.out.println(count);
}
}
求转化为c++代码且使其ac