-
GPA - 17662Algorithm/BOJ 2020. 2. 28. 18:5812345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394//17662 - GPA#include <iostream>#include <vector>#include <map>using namespace std;int C, M, S;map<string, double> cunit;vector<string> mname;vector<vector<string>> mclass;map<string, double> student;double head;double tail;void init(){cout << fixed;cout.precision(2);head = tail = 0.0;cin >> C >> M >> S;string s;double x;mname = vector<string>(M);mclass = vector<vector<string>>(M);for(int i = 0; i<C; ++i){cin >> s >> x;cunit[s] = x;}for(int i = 0; i<M; ++i){cin >> s >> x;mname[i] = s;for(int j = 0; j<(int)x; ++j){cin >> s;mclass[i].push_back(s);}}}void cal(int C){head = tail = 0.0;student.clear();int num;cin >> num;string s;double grade;for(int i = 0; i<num; ++i){cin >> s >> grade;student[s] = grade;head += cunit[s]*grade;tail += cunit[s];}cout << "Student " << C << "\n";cout << "GPA: " << head/tail << "\n";for(int i = 0; i<M; ++i){head = tail = 0.0;bool flag = true;for(int j = 0; j<mclass[i].size(); ++j)if(student.count(mclass[i][j]) == 0){flag = false;break;}else{head += student[mclass[i][j]]*cunit[mclass[i][j]];tail += cunit[mclass[i][j]];}if(flag)cout << mname[i] << ": " << head/tail << "\n";}}int main(){ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);int C; cin >> C;for(int tn = 0; tn<C; ++tn){cout << "Data Set " << tn+1 << ":\n";init();for(int i = 0; i<S; ++i)cal(i+1);cout << "\n";}}
cs GPA
자료구조 문제 입니다!
'Algorithm > BOJ' 카테고리의 다른 글
동전 2 - 2294 (0) 2020.03.01 동전 1 - 2293 (0) 2020.03.01 Cap Size - 17659 (0) 2020.02.28 Mangling Names - 17661 (0) 2020.02.28 계단 수 - 1562 (0) 2020.02.26