首页 > 试题广场 >

左侧严格小于计数

[编程题]左侧严格小于计数
  • 热度指数:1747 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定长度为 n 的整数序列 a_1,a_2,\dots,a_n,定义结果序列 b 为:

b_i = \bigl|\{j \mid 1 \le j < i \text{ 且 } a_j < a_i\}\bigr|,\quad 1 \le i \le n.

\hspace{15pt}请计算并输出序列 b_1,b_2,\dots,b_n

输入描述:
\hspace{15pt}第一行输入整数 n\ (1 \le n \le 100)
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n\ (0 \le a_i \le 10),以空格分隔。


输出描述:
\hspace{15pt}输出一行,包含 n 个整数 b_1,b_2,\dots,b_n,以空格分隔。
示例1

输入

5
1 2 3 4 5

输出

0 1 2 3 4
示例2

输入

6
4 4 2 1 3 5

输出

0 0 0 0 2 5

说明

\hspace{8pt}\bullet\, a_5=3 时,左侧小于 3 的元素为 \{4,4,2,1\} 中的 \{2,1\},共 2 个; 
\hspace{8pt}\bullet\, a_6=5 时,左侧所有 5 个元素均小于 5,共 5 个。
import sys

i = 0
j = 0
count = 0
b = []
num = map(int,input().split(" "))
for line in sys.stdin:
    a = line.split()
    for i in range(0,len(a)):
        while j < i:
            if int(a[i]) > int(a[j]):
                count += 1
            j += 1
        b.append(str(count))
        count = 0
        j = 0
        i+=1
   
    print(" ".join(b))
发表于 2025-06-26 19:19:43 回复(0)
n=int(input())
a=list(map(int,input().split()))
d=[]
for i in range(n):
    c=0
    for j in range(i):
        if a[i]>a[j]:
            c+=1
    d.append(str(c))
print(' '.join(d))  
发表于 2025-06-23 17:28:02 回复(0)