您的位置:首页 > 其它

UVA 11462 Age Sort(IO优化)

2016-09-30 13:24 495 查看
如果不确定程序瓶颈是IO的话,不要随意优化IO。

输入文件有25M,所以输入输出非常大,需要用速度较快的IO。

240MS。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int c[100];
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
memset(c,0,sizeof(c));
int age;
for(int i=0;i<n;i++) {scanf("%d",&age);c[age]++;}
bool first=true;
for(int i=1;i<=100;i++){
for(int j=0;j<c[i];j++){
if(!first) printf(" ");
first=false;
printf("%d",i);
}
}
printf("\n");
}
return 0;
}


IO还可以用字符优化。
70ms。

//
//  main.cpp
//  Richard
//
//  Created by 邵金杰 on 16/9/30.
//  Mail:1016427040@qq.com or jasonshaosjj@gmail.com
//  Copyright © 2016年 邵金杰. All rights reserved.
//

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
int c[101];
int readint()
{
char c=getchar();
while(!isdigit(c)) c=getchar();
int x=0;
while(isdigit(c)){
x=x*10+c-'0';
c=getchar();
}
return x;
}
void writeint(int x)
{
char buf[10];
int len=0;
while(x){
buf[len++]=x%10+'0';
x/=10;
}
for(int i=len-1;i>=0;i--) printf("%c",buf[i]);
}
int main()
{
int n;
while((n=readint()))
{
memset(c,0,sizeof(c));
for(int i=0;i<n;i++) c[readint()]++;
bool first=true;
for(int i=1;i<=100;i++){
for(int j=0;j<c[i];j++){
if(!first) putchar(' ');
first=false;
writeint(i);
}
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: