【排序】一次查找两元素
生活随笔
收集整理的這篇文章主要介紹了
【排序】一次查找两元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題 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?
?
轉載于:https://www.cnblogs.com/Rhythm-/p/9348116.html
總結
以上是生活随笔為你收集整理的【排序】一次查找两元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [51nod1299]监狱逃离 树形
- 下一篇: 智能监狱