1 条题解

  • -1
    @ 2023-4-1 9:58:56
    #include <bits/stdc++.h>//万能头文件
    using namespace std;
    map <int,int> m;
    int a[100010];
    int main()
    {
    int n,i;
    cin>>n;
    //求每个数字出现的次数
    for(i = 1;i <= n;i++)
    {
    cin>>a[i];
    //如果x在map中没有出现过
    if(m.count(a[i]) == 0)
    {
    m[a[i]] = 1;
    }
    else
    {
    m[a[i]]++;
    }
    }
    int c = 1,t;
    //修正名次
    for(map<int,int>::reverse_iterator j = m.rbegin();j != m.rend();j++)
    {
    t = j->second;
    m[j->first] = c;
    c = c + t;
    }
    //输出结果
    for(i = 1;i <= n;i++)
    {
    printf("%d\n",m[a[i]]);//输出
    }
    return 0;
    }//代码已AC
    

    信息

    ID
    539
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    4
    已通过
    4
    上传者