九度Online Judgeアルゴリズムブラシ問題1034:大金持ちを探す
テーマ1034:大金持ちを探す
浙江桐郷烏鎮にはn人がいます.この町の元m人の大金持ちを見つけてください.入力:複数の試験例を含む入力.各使用例は、まず2つの整数nを含む(
code
C言語実現
タイムアウトエラーが発生し始めましたTime Limit Exceed
浙江桐郷烏鎮にはn人がいます.この町の元m人の大金持ちを見つけてください.入力:複数の試験例を含む入力.各使用例は、まず2つの整数nを含む(
0<n<=100000) m(0<m<=10)
、うちnは町の人数、mは探し出す大金持ちの数、次の行は町のn人の財産値を入力します.nとmが同時に0の場合は入力が終わります.出力:烏鎮の前のm人の大金持ちの財産数を出力してください.財産の多い列の前で、大金持ちがm人未満の場合、すべて出力して、各グループの出力は1行を占めます.サンプル入力:3 1 2 5-153 1 2 3 4 5 0サンプル出力:5 5 4 3ソース:2009年浙江大学コンピュータ及びソフトウェアエンジニアリング研究生気試験本題code
C言語実現
#include<stdio.h>
int main() {
int i,j;
int *p=NULL;
int *q=NULL;
int n,m,temp;
while( scanf("%d %d",&n,&m) ==2) {
if (n == 0 && m == 0)
break;
else if (n<0 || n>100000 || m<0 || m>10)
continue;
else {
p = (int *)malloc(sizeof(int)*n);
q = (int *)malloc(sizeof(int)*m);
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<m ;i++)
for (j=0;j<n-1-i;j++)
if (p[j]>p[j+1]){
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
for (i=n-1;i>n-m && i>0;i--)
printf("%d ",p[i]);
printf("%d
",p[i]);
}
}
return 0;
}
/**************************************************************
Problem: 1034
User: langzimaizan
Language: C
Result: Accepted
Time:20 ms
Memory:1104 kb
****************************************************************/
タイムアウトエラーが発生し始めましたTime Limit Exceed
#include<stdio.h>
int main() {
int i,j;
int *p=NULL;
int *q=NULL;
int n,m,temp;
while( scanf("%d %d",&n,&m) ==2) {
if (n == 0 && m == 0)
break;
else if (n<0 || n>100000 || m<0 || m>10)
continue;
else {
p = (int *)malloc(sizeof(int)*n);
q = (int *)malloc(sizeof(int)*m);
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<n-1;i++)
for (j=0;j<n-1-i;j++)
if (p[j]>p[j+1]){
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
for (i=n-1;i>n-m;i--)
printf("%d ",p[i]);
printf("%d
",p[i]);
}
}
return 0;
}
/**************************************************************
Problem: 1034
User: langzimaizan
Language: C
Result: Time Limit Exceed
****************************************************************/