重力翻转
题目描述
物理课上小蒜太无聊了(物理对他来说太简单),于是他就造了一个玩具盒来打发时间。这个盒子非常神奇,你甚至可以去改变盒子中重力的方向。
盒子中有许多玩具立方体,总共 nn 列,每一列有 a_iai 个立方体,开始的时候重力的方向是竖直向下的,当小蒜改变了盒子中重力的方向之后,所有的立方体都开始向右边移动,下图分别表示初始每个立方体的状态和改变重力之后每个立方体的状态,橙色标记的方块表示位置发生过改变的立方体。
现在告诉你开始状态下每一列的玩具立方体的个数,问改变重力方向之后每一列有多少个玩具立方体。
输入格式
第一行输入一个整数 n(1≤n≤1000);
第二行包含n个正整数 ai(0≤ai≤1000),相邻两数之间以一个空格分隔。
输出格式
输出n个用空格隔开的整数,表示重力方向改变之后每一列有多少个立方体。
样例输入一
4 3 2 1 2
样例输出一
1 2 2 3
样例输入二
3 2 3 8
样例输出二
2 3 8
解法一
其实这题就是个水题
题目看起来很复杂,但简而言之就是给一个数组排个序,再输出。
为什么?
通过生活常识可知,经过题目中的操作,结果一定是ai≤ai+1,所以题目其实就是想让我们排序罢了~
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 int main () 6 { 7 int n; 8 cin>>n; 9 int a[1005]; 10 for(int i=0;i<n;i++) 11 { 12 cin>>a[i]; 13 } 14 sort(a,a+n); 15 for(int i=0;i<n;i++) 16 { 17 cout<<a[i]<<" "; 18 } 19 cout<<endl; 20 return 0; 21 }