1055 集體照 25分

2022-05-30 11:39:16 字數 1293 閱讀 6024

每排其他人以中間人為軸,按身高非增序,先右後左交替入隊站在中間人的兩側(例如5人身高為190、188、186、175、170,則隊形為175、188、190、186、170。這裡假設你面對拍照者,所以你的左邊是中間人的右邊);

若多人身高相同,則按名字的字典序公升序排列。這裡保證無重名。

sort多重條件排序

bool cmp(student a, student b) 

else

}

這樣依次迴圈就好~

//0 1 2 | 3 4 5 | 6 7 8 9

//cur = 2 n-1 n-lastp //最後一排

//cur = 1 n-lastp-1-p(k-2-cur) n-lastp-p*(k-1-cur) // 其餘排

//cur = 1 10-4-1-3*0 = 5 10-4-3=3

//cur = 0 10-4-1-31=2 10-4-32 = 0

#include#include#includeusing namespace std;

struct student ;

bool cmp(student a, student b)

else

}int main()

int p = n / k; // 前排每排人數

int lastp = n - p * (k - 1); //最後一排每排人數

sort(a, a + n, cmp);

int cur = k - 1;//當前排數

int left = 1;

while (cur >= 0)

else

}for (m = 0; m < lastp; m++)

}cout << endl;

} //0 1 2 | 3 4 5 | 6 7 8 9

//cur = 2 n-1 n-lastp

//cur = 1 n-lastp-1-p(k-2-cur) 10-4-1-3*0 = 5 n-lastp-p*(k-1-cur) 10-4-3=3

//cur = 0 10-4-1-3*1 = 2 10-4-3*2 = 0

else

else

}for (m = 0; m < p; m++)

}cout << endl;

} cur--;

} return 0;

}

1055 集體照 (25 分)

拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 長度不超過 8 個英...

1055 集體照 25 分

拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 長度不超過 8 個英...

1055 集體照 25 分

題意描述 拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。輸入格式 每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 ...