I-抹发胶

I-抹发胶

/ 0评 / 1501次 / 2

Description

今天独立团团长教战士们抹发胶(每个人抹的发胶都有一个发胶值)。大家排成一行,从左到右依次排开,他们只能看到自己左边的人,大家都是两个肩膀扛一个脑袋的,谁也不服谁,于是他们都想知道自己左边到底有多少人的发胶值不如自己。如果不如自己的人越多,他们就越高兴,因为这样他们的发型就越不会乱啦。 现在想问问你,如果每个人都看向左边,有多少人的发胶值小于自己呢?(任意两个人的发胶值可能一样)

Input

首先输入T (T<=10),表示有T组数据;每组数据输入人数N(N<=100)和每个人的发胶值ai(0<ai<1000)。

Output

每组输出n个数字,第i个输出的数字表示第i个人左边有多少人的发胶值小于自己。 数字之间用一个空格隔开,注意最后一个数字之后不要输出多余的空格。

Analysis

暴力水题,没敲错代码或者看错题即可顺利AC

Accepted Code

/*
 * @Author: Gehrychiang
 * @LastEditors: Gehrychiang
 * @Website: www.yilantingfeng.site
 * @E-mail: gehrychiang@aliyun.com
 */
#include <bits/stdc++.h>
using namespace std;
int a[105];
int ans[105];
int main()
{
    int t;
    while (cin >> t)
    {
        while (t--)
        {
            int n;
            cin >> n;
            memset(a, 0, sizeof(a));
            memset(ans, 0, sizeof(ans));
            for (int i = 0; i < n; i++)
            {
                cin >> a[i];
            }
            ans[0] = 0;
            for (int x = 1; x < n; x++)
            {
                for (int y = 0; y < x; y++)
                {
                    if (a[y] < a[x])
                        ans[x]++;
                }
            }
            for (int i = 0; i < n; i++)
            {
                cout << ans[i];
                if (i != n - 1)
                    cout << " ";
                else if (i == n - 1)
                    cout << endl;
            }
        }
    }
    return 0;
}

发表回复

您的电子邮箱地址不会被公开。

你好 No.71028