题解:洛谷 P1428 小鱼比可爱
【题目来源】
【题目描述】
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。
【输入】
第一行输入一个正整数 \(n\),表示鱼的数目。
第二行内输入 \(n\) 个正整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度 \(a_i\)。
【输出】
一行,输出 \(n\) 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。
【输入样例】
6 4 3 0 5 1 2
【输出样例】
0 0 0 3 1 2
【算法标签】
《洛谷 P1428 小鱼比可爱》 #模拟#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
using namespace std; // 使用标准命名空间
/**
* 主函数 - 程序入口
* @return 程序执行状态码(0表示成功)
*/
int main()
{
int n; // 定义变量:数组元素个数
int a[105]; // 定义数组:存储输入的数字序列
int sum; // 定义变量:计数器,统计比当前元素小的元素个数
cin >> n; // 输入数组元素个数
// 输入数组元素
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
// 遍历数组,计算每个元素前面比它小的元素个数
for (int i = 1; i <= n; i++)
{
sum = 0; // 重置计数器
// 遍历当前元素之前的所有元素
for (int j = 1; j <= i - 1; j++)
{
// 如果前面的元素比当前元素小
if (a[j] < a[i])
{
sum++; // 计数器加1
}
}
// 输出当前元素前面比它小的元素个数
cout << sum << " ";
}
return 0; // 程序正常结束
}
【运行结果】
6
4 3 0 5 1 2
0 0 0 3 1 2
浙公网安备 33010602011771号