• 17-比赛1 F


    Seg-El has last chance to make the final changes in order to prevent the destruction of Krypton.

    He is provided an array Arr[ ] of N elements.

    For each element Arr [ i ], he needs to find the largest element Arr [ j ] where j < i and Arr [ j ] < Arr [ i ]

    Help him to achieve this task.

    Input

    First line comprises N- the number of elements in the array.

    Second line contains N space separated integers denoting the elements of the array.

    Output

    Print N lines denoting the required answer as specified above. In case no such value exists for some

    Arr [ i ], print "-1" (without quotes).

    Constraints

    • 1 ≤ N ≤ 200000
    • 1 ≤ Arr [ i ] ≤ 1015

    Example


    1 2 3 5 4 

    Output:

    -1 



    通过 set 或 map 就可轻松解决;

    关键字 :  set maplower_bound()函数

    1.学长的代码

     5 # include <bits/stdc++.h>
     6 using namespace std;
     7 set<long long> s;
     8 int main ()
     9 {
    10     int n;
    11     long long x;
    12     scanf("%d", &n);
    13     for (int i = 1; i <= n; ++i) {
    14         scanf("%lld", &x);
    15         x = -x;
    16         auto iter = s.lower_bound(x + 1);
    17         if (iter == s.end()) puts("-1");
    18         else printf("%lld
    ", -*iter);
    19         s.insert(x);
    20     }
    21     return 0;
    22 }

    2 . 一开始不会使用set ,用map自己做的

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     map<long long,int> imap;
     6     long long t;
     7     int n;
     8     cin>>n;
     9     for(int i =1;i<=n;i++)
    10     {
    11         scanf("%lld",&t);
    12         t = -t;
    13         //map<long long,int>::iterator it;
    14         auto it = imap.lower_bound(t+1);
    15         if(it == imap.end()) cout<<"-1"<<endl;
    16         else
    17            cout<<-(it->first)<<endl;
    18         imap[t] = i;
    19     }
    20     return 0;
    21 }
  • 相关阅读:
    联合省选 2020 题解
    [省选联考 2020 A 卷] 组合数问题
    【NOI2016】循环之美
    MySQL 之 json 数据操作
    使用Redis和定时实现延时消费
    事务,这次还有不清楚的吗,一次实战坑
    哨兵redis配置
    记录一次shell脚本的使用
    记录一次工作中的SQL优化,临时表和CountDownLatch
    JAVA流读取文件并保存数据
  • 原文地址:https://www.cnblogs.com/darkboy/p/9379891.html
Copyright © 2020-2023  润新知