4555: 【作】【例82.2】 座次问题
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:2
解决:2
题目描述
小 A 的学校,老师好不容易解决了市赛的报名问题,现在老师又犯愁了。现在有
位同学参加比赛,但是老师想给他们排座位,但是排列方式太多了。老师非常想弄明白最后的排座次的结果是什么样子的,到底有多少种结果。请设计一个程序帮助老师。最后输出各种情况的人名即可,一行一种情况,每种情况的名字按照报名即输入顺序排序。
输入
第一行 输入
;第二行 到 第
行 共输入 个人名。由于小
学校承办能力实在有限,所以其中 小于等于 10 人。输出
输出各种情况的人名即可,一行一种情况,每种情况的名字按照报名即输入顺序排序。
样例输入 复制
3
xiaowang
xiaoA
xiaoli
样例输出 复制
xiaowang xiaoA xiaoli
xiaowang xiaoli xiaoA
xiaoA xiaowang xiaoli
xiaoA xiaoli xiaowang
xiaoli xiaowang xiaoA
xiaoli xiaoA xiaowang
提示
#include<bits/stdc++.h> using namespace std; int main() { vector < string > M1; vector < int > M2; int N; string name; cin >> N; for (int i = 0; i < N; i++) { cin >> name; M1.push_back(name); M2.push_back(i); } do { for (vector < int > ::iterator it = M2.begin(); it != M2.end(); it++) { cout << M1[( * it)] << " "; } cout << endl; } while (next_permutation(M2.begin(), M2.end())); return 0; }