问题描述
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。
目标是使得最后得到的数尽可能小(注意0不能做首位)。
例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
现给定数字,请输出能够组成的最小的数。
输入
输入在一行中给出10个非负整数,顺序表示我们拥有数字0、1、……9的个数。整数间用一个空格分隔。
10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出
在一行中输出能够组成的最小的数。
输入样列
2 2 0 0 0 3 0 0 1 0
输出样例
10015558
#include<bits/stdc++.h>
using namespace std;
int main()
{//2024✔✔✔✔℃₩₫₫₫₫₫₫₫₫₫②⑩②④⑧
long long a,b,c,d,e,f,g,h,i,j;
cin>>a>>b>>c>>d>>e>>f>>g>>h>>i>>j;
if(a==0)
{
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(a!=0)
{
if(b!=0)
{
cout<<"1";
b--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c!=0)
{
cout<<"2";
c--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d!=0)
{
cout<<"3";
d--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e!=0)
{
cout<<"4";
e--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e==0&&f!=0)
{
cout<<"5";
f--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e==0&&f==0&&g!=0)
{
cout<<"6";
g--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e==0&&f==0&&g==0&&h!=0)
{
cout<<"7";
h--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e==0&&f==0&&g==0&&h==0&&i!=0)
{
cout<<"8";
i--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
if(b==0&&c==0&&d==0&&e==0&&f==0&&g==0&&h==0&&i==0&&j!=0)
{
cout<<"9";
j--;
for(int i=0;i<a;i++)
{
cout<<"0";
}
for(int i=0;i<b;i++)
{
cout<<"1";
}
for(int i=0;i<c;i++)
{
cout<<"2";
}
for(int i=0;i<d;i++)
{
cout<<"3";
}
for(int i=0;i<e;i++)
{
cout<<"4";
}
for(int i=0;i<f;i++)
{
cout<<"5";
}
for(int i=0;i<g;i++)
{
cout<<"6";
}
for(int i=0;i<h;i++)
{
cout<<"7";
}
for(int t=0;t<i;t++)
{
cout<<"8";
}
for(int i=0;i<j;i++)
{
cout<<"9";
}
cout<<endl;
return 0;
}
}
if(a==0)
{
return 0;
//A;
}
//down and see ase ase
return 0;
}
//凑成500行
非常繁琐