• 【排序】一次查找两元素


    问题 A: 【排序】一次查找两元素

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 30  解决: 21
    [提交] [状态] [讨论版] [命题人:]

    题目描述

    修罗王和邪狼逃出监狱,混入了监狱门口检查站前排成一列准备待检的囚犯人群中,由于每个囚犯入狱前均以编号来表示,且该编号的编写规则是囚犯的危险性越大,则编号就越小。显然,修罗王和邪狼因其极端的危险性,其编号必定是这一列无序排列的人群中最小的两个,那么,如何对所有人的编号只用一遍扫描,即找出修罗王和邪狼的编号呢?

    输入

    共两行,第一行为一个数N(N≤1000000),即排队的人数,第二行为N个数,即每个人的编号,每个编号均不超过int类型的最大值。

    输出

    输出由小到大排列的最小的两个编号。

    样例输入

    10
    2 1 76 11 4 765 32 56 3 23
    

    样例输出

    1 2
    
    分析:排序,输出前两个元素。
    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    int n;
    vector<int>num;
    void init(){
        cin>>n;
        num.resize(n+1);
        range(i,1,n)cin>>num[i];
        sort(num.begin()+1,num.end());
    }
    void solve(){
        cout<<num[1]<<" "<<num[2]<<endl;
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    搜索框的创建
    自定义非等高 Cell
    自定义等高 Cell
    表格多选删除
    聊天布局
    表格编辑
    表格折叠
    tableView 的协议方法
    UITouch
    UIDevice
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9348116.html
Copyright © 2020-2023  润新知