眼下已經把陣列整理好,但不知要怎麼算要有幾個警哨,可以的話請提出一些思路,謝謝。
以下是目前寫到一半的程式碼:
眼下已經把陣列整理好,但不知要怎麼算要有幾個警哨,可以的話請提出一些思路,謝謝。
以下是目前寫到一半的程式碼:
#include#include#includeusing namespace std;int main(){int n=0;while (cin>>n){vector<int> arr(n);vector<int> abso(n);for (int i = 0; i < n; i++){cin>>arr.at(i);abso.at(i)=arr.at(i);}for (int i = 0; i < n; i++)abso.at(i)=abs(abso.at(i));//排序演算法int tmp=0;for(int j=n;j>0;j--){for(int i=1;i<j;i++)if(abso.at(i-1)>abso.at(i)){tmp=abso.at(i-1);abso.at(i-1)=abso.at(i);abso.at(i)=tmp;
tmp=arr.at(i-1);arr.at(i-1)=arr.at(i);arr.at(i)=tmp;}}//開始處理}return 0;}
白人(<0)和黑人(>0)中間要放巡邏哨,用個for迴圈檢查即可