Java/C++P 1271【ディープベース9.例1】生徒会選挙(カウント順)
テーマ説明学校では生徒会メンバーを選出しており、n(nle 999)n(n≦999)名の候補者がおり、各候補番号はそれぞれ1からnnまでで、現在はm(m<=200000)m(m<=200000)m(m<=200000)枚の票が集められ、各票に候補番号が書かれている.今、これらの山のような票を投票数によって小さい順に並べたい.nnとmmおよびmm個の票の数字を入力し、並べ替えた票番号を求める.
入力形式なし
出力フォーマットなし
入出力サンプル入力#1コピー5 10 2 5 2 2 5 2 2 2 2 2 2 1 2出力#1コピー1 2 2 2 2 2 5
Java(時間制限が過ぎていないのでC++)に変更
C++
入力形式なし
出力フォーマットなし
入出力サンプル入力#1コピー5 10 2 5 2 2 5 2 2 2 2 2 2 1 2出力#1コピー1 2 2 2 2 2 5
Java(時間制限が過ぎていないのでC++)に変更
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] nums = new int[m];
for(int i = 0; i < m; i++) {
nums[i] = sc.nextInt();
}
//
//
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for(int i = 0; i < m; i++) {
min = Math.min(nums[i], min);
max = Math.max(nums[i], max);
}
int[] arr = new int[max - min + 1];
for(int i = 0; i < m; i++) {
arr[nums[i] - min]++;
}
for(int i = 0; i < arr.length; i++) {
int k = arr[i];
while (k > 0) {
System.out.print((i + min) + " ");
k--;
}
}
}
}
C++
#include
using namespace std;
int n, m, i, a;
int nums[1000];
int main()
{
cin>>n>>m;
for(i = 0; i < m; i++) {
cin>>a;
++nums[a];
}
for(i = 0; i < 1000; i++) {
while(nums[i]--) {
cout<