forked from IElgohary/Uva-solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path10226 - Hardwood Species.cpp
95 lines (82 loc) · 1.31 KB
/
10226 - Hardwood Species.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*input
1
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow
*/
#include <stdio.h>
#include <cmath>
#include <set>
#include <vector>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <string.h>
#include <stack>
#include <map>
#include <cstring>
#include <algorithm>
#include <iomanip>
using namespace std;
#define SSTR( x ) dynamic_cast< std::ostringstream & >( \
( std::ostringstream() << std::dec << x ) ).str()
#define FOR(a , b) for ( int i = a ; i < b ; i++ )
#define FOR2(a , b) for ( int j = a ; j < b ; j++ )
#define sz() size()
typedef long long ll;
typedef std::pair<int,int> ii;
map<string, int> mp;
int main()
{
int tc;
cin >> tc;
cin.ignore();
cin.ignore();
string s="";
while ( tc--)
{
mp.clear();
int total = 0;
string line;
while(getline(cin , line) && line != "")
{
total ++;
if (mp.count(line))
mp[line] ++;
else
mp[line] = 1;
}
cout << s;
s = '\n';
for (map<string, int>::iterator iter = mp.begin(); iter != mp.end(); ++iter)
{
cout << iter->first << ' '<< setprecision(4)<< fixed << iter->second * 100.0/total<< endl;
}
}
}