杭电1425,谁优化下,老师超时
程序代码:
sort Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20158 Accepted Submission(s): 5964 Problem Description 给你n个整数,请按从大到小的顺序输出其中前m大的数。 Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。 Output 对每组测试数据按从大到小的顺序输出前m大的数。 Sample Input 5 3 3 -35 92 213 -644 Sample Output 213 92 3 HintHint 请用VC/VC++提交 一下是我的代码 #include <stdio.h> int a[1000000]; int main() { int n, m, i, j, t, prime; while(scanf("%d%d", &n, &m) == 2) { prime = 1; for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i = 0; i < n - 1; i++) for(j = 0; j < n - 1 - i; j++) if(a[j] < a[j + 1]) { t = a[j + 1]; a[j + 1] = a[j]; a[j] = t; } for(i = 0; i < m; i++) { if(prime) prime = 0; else if(prime == 0) printf(" "); printf("%d", a[i]); } printf("\n"); } return 0; }地址http://acm.hdu.