POJ 1007

1 #include <string>
2 #include <iostream>
3 #include <map>
4 using namespace std;
5
6 int measure(string s)
7 {
8 int count = 0;
9 for(int i=0; i<s.length()-1; i++)
10 {
11 for(int j=i+1; j<s.length(); j++)
12 {
13 if(s[i] > s[j])
14 {
15 count++;
16 }
17 }
18 }
19
20 return count;
21 }
22
23 int main()
24 {
25 int length = 0, count = 0;
26 cin >> length >> count;
27 int i = 0;
28 multimap<string, int> input;
29 string s;
30 while(i < count)
31 {
32 i++;
33 cin >> s;
34 input.insert(pair<string, int>(s, 0));
35 }
36
37 multimap<int, string> output;
38 for(multimap<string, int>::iterator iterator = input.begin(); iterator != input.end(); iterator++)
39 {
40 int result = measure(iterator->first);
41 //iterator->second = result;
42 output.insert(pair<int, string>(result, iterator->first));
43 }
44
45 for(multimap<int, string>::iterator iter = output.begin(); iter != output.end(); iter++)
46 {
47 cout << iter->second << endl;
48 }
49
50 }
2 #include <iostream>
3 #include <map>
4 using namespace std;
5
6 int measure(string s)
7 {
8 int count = 0;
9 for(int i=0; i<s.length()-1; i++)
10 {
11 for(int j=i+1; j<s.length(); j++)
12 {
13 if(s[i] > s[j])
14 {
15 count++;
16 }
17 }
18 }
19
20 return count;
21 }
22
23 int main()
24 {
25 int length = 0, count = 0;
26 cin >> length >> count;
27 int i = 0;
28 multimap<string, int> input;
29 string s;
30 while(i < count)
31 {
32 i++;
33 cin >> s;
34 input.insert(pair<string, int>(s, 0));
35 }
36
37 multimap<int, string> output;
38 for(multimap<string, int>::iterator iterator = input.begin(); iterator != input.end(); iterator++)
39 {
40 int result = measure(iterator->first);
41 //iterator->second = result;
42 output.insert(pair<int, string>(result, iterator->first));
43 }
44
45 for(multimap<int, string>::iterator iter = output.begin(); iter != output.end(); iter++)
46 {
47 cout << iter->second << endl;
48 }
49
50 }