Skip to content

14023: 【原4023】面包比可爱

题目

题目描述

author: SupremeT 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/4023

Description

人比人,气死人;面包比面包,难过死面包。小面包最近参加了一个“比可爱”比赛,比的是每只面包的可爱程度。参赛的面包被从左到右排成一排,头都朝向左边,然后每只面包会得到一个整数数值,表示这只面包的可爱程度,很显然整数越大,表示这只面包越可爱,而且任意两只面包的可爱程度可能一样。由于所有的面包头都朝向左边,所以每只面包只能看见在它左边的面包的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只面包不如自己可爱呢。请你帮这些可爱但是大脑不够用的小面包们计算一下。

Input Format

第一行输入一个整数n,表示面包的数目。(n <= 100)

第二行内输入n个整数,用空格间隔,依次表示从左到右每只小面包的可爱程度。

Output Format

行内输出n个整数,用空格间隔,依次表示每只小面包眼中有多少只面包不如自己可爱。

Sample Input

6
4 3 0 5 1 2

Sample Output

0 0 0 3 1 2

FineArtz's solution

/* 面包比可爱 */
#include <iostream>
using namespace std;

int main(){
    int n = 0, a[100], ans[100] = {0};
    cin >> n;
    for (int i = 0; i < n; ++i) cin >> a[i];
    for (int i = 0; i < n; ++i)
        for (int j = 0; j <= i - 1; ++j)
            if (a[i] > a[j]) ++ans[i];
    for (int i = 0; i < n; ++i) cout << ans[i] << ' ';
    cout << endl;
    return 0;
}

ligongzzz's solution

#include <iostream>
#include <vector>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin >> n;

    vector<int> val(n);

    for (int i = 0; i < n; ++i) {
        cin >> val[i];
        int cnt = 0;
        for (int j = 0; j < i; ++j)
            if (val[j] < val[i])
                ++cnt;
        cout << cnt << " ";
    }

    return 0;
}

yyong119's solution

#include <iostream>
using namespace std;

const int MAX_N = 100;
int a[MAX_N + 5];

int main() {
    int n; cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        int tmp = 0;
        for (int j = 0; j < i; ++j)
            if (a[j] < a[i]) ++tmp;
        cout << tmp << " ";
    }
    return 0;
}