Codeforces 135 A. Replacement

問題

数列が与えられる。この数列の項を一つだけ(必ず)変更して、ソートする。
変更前と変更後の数列の各項はすべて1以上10^9以下の整数である。


変更後にそれぞれの位置に来る項の最小値を求めよ。

制約条件

n≦10^5
数列の各項は1以上10^9以下

方針

最大の項を1にする。
最大の項が元々1だったら2にする。

ソースコード

int n,a[100000];

void run()
{
	cin>>n;
	rep(i,n)cin>>a[i];
	sort(a,a+n);
	if(a[n-1]!=1)a[n-1]=1;
	else a[n-1]=2;
	sort(a,a+n);
	rep(i,n)cout<<a[i]<<(i==n-1?"\n":" ");
}