hdu 1425 hdoj 1425
1176 ワード
sort
Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13932 Accepted Submission(s): 3951
Problem Description
n個の整数をあげます.大きいから小さい順に前のmの大きい数を出力してください.
Input
各テストデータのセットには2行あり、最初の行には2つの数n,m(0)がある.
Output
各試験データのセットについて、前のmの大きい数を大きい順に出力する.
Sample Input
5 3 3 -35 92 213 -644
Sample Output
213 92 3
#include int main() { unsigned n, m; int x; char a[1000001] = {0}; while (scanf("%d%d", &n, &m) != EOF) { while (n--) { scanf("%d", &x); a[500000+x]++; } for (x = 1000000; m; x--) { if (a[x]) { printf("%d", x-500000); if (--m) putchar(32); else putchar(10); a[x]--; } } } return 0; }
Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13932 Accepted Submission(s): 3951
Problem Description
n個の整数をあげます.大きいから小さい順に前のmの大きい数を出力してください.
Input
各テストデータのセットには2行あり、最初の行には2つの数n,m(0)がある.
Output
各試験データのセットについて、前のmの大きい数を大きい順に出力する.
Sample Input
5 3 3 -35 92 213 -644
Sample Output
213 92 3
#include int main() { unsigned n, m; int x; char a[1000001] = {0}; while (scanf("%d%d", &n, &m) != EOF) { while (n--) { scanf("%d", &x); a[500000+x]++; } for (x = 1000000; m; x--) { if (a[x]) { printf("%d", x-500000); if (--m) putchar(32); else putchar(10); a[x]--; } } } return 0; }