Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- vector<double> calcEquation(vector<vector<string>>& equations, vector<double>& values, vector<vector<string>>& queries) {
- map<string,map<string,double>> m;
- for(int i=0;i<equations.size();i++){
- m[equations[i][0]][equations[i][1]]=values[i];
- m[equations[i][1]][equations[i][0]]=1/values[i];
- for(auto iter:m[equations[i][1]]){
- if(iter.first!=equations[i][0]){
- m[equations[i][0]][iter.first]=iter.second/values[i];
- m[iter.first][equations[i][0]]=values[i]/(iter.second);
- }
- }
- for(auto iter:m[equations[i][0]]){
- if(iter.first!=equations[i][1]){
- m[equations[i][1]][iter.first]=iter.second/values[i];
- m[iter.first][equations[i][1]]=values[i]/(iter.second);
- }
- }
- }
- for(auto iter:m){
- for(auto iter1:iter.second){
- cout<<iter.first<<":"<<iter1.first<<":"<<iter1.second<<" ";
- }
- }
- vector<double> ans;
- for(auto iter:queries){
- if(m[iter[0]][iter[1]]==0.0){
- if(iter[1]==iter[0]){
- ans.push_back(1);
- }else{
- ans.push_back(-1);
- }
- }else{
- ans.push_back(m[iter[0]][iter[1]]);
- }
- cout<<m[iter[0]][iter[1]]<<' ';
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement