482 Permutation Arrays

C++语言: Codee#25769
01 /*
02 +++++++++++++++++++++++++++++++++++++++
03             author: chm
04 +++++++++++++++++++++++++++++++++++++++
05 */
06
07
08 #include <map>
09 #include <set>
10 #include <list>
11 #include <queue>
12 #include <cmath>
13 #include <stack>
14 #include <bitset>
15 #include <cstdio>
16 #include <cctype>
17 #include <string>
18 #include <vector>
19 #include <cassert>
20 #include <cstdlib>
21 #include <cstring>
22 #include <fstream>
23 #include <sstream>
24 #include <iomanip>
25 #include <iostream>
26 #include <algorithm>
27
28 using namespace std;
29
30 FILE*            fin         = stdin;
31 FILE*            fout         = stdout;
32 const int        max_size     = 10086;
33
34 struct Tp
35 {
36     int idx;
37     char str[99];
38     Tp(int x, char* source)
39     {
40         idx = x;
41         strcpy(str, source);
42     }
43 };
44
45 bool mycmp(Tp x, Tp y)
46 {
47     return x.idx < y.idx;
48 }
49
50 int main()
51 {
52     int n;
53     int num;
54     int cnt;
55     char tmp[max_size];
56     vector<Tp> vtr;
57
58     while(scanf("%d\n\n", &n) != EOF)
59     {
60         for(int i = 0; i < n; ++i)
61         {
62             vtr.clear();
63             cin.getline(tmp, sizeof(tmp));
64             string line(tmp);
65             istringstream is(line);
66             cnt = 0;
67
68             while(is >> num)
69             {
70                 ++cnt;
71                 vtr.push_back(Tp(num, ""));
72             }
73             for(int j = 0; j < cnt; ++j)            //read
74                 cin >> vtr[j].str;
75             sort(vtr.begin(), vtr.end(), mycmp);    //sort
76             for(int j = 0; j < cnt; ++j)            //print
77                 cout << vtr[j].str << endl;
78             if(i < n - 1)
79             {
80                 cout << endl;
81                 scanf("\n");
82             }
83
84         }
85     }
86     return 0;
87 }
原文地址:https://www.cnblogs.com/invisible/p/2389870.html