b512. 高維度稀疏向量 5/16/2025

解法一、map

✅ 完整代碼

評分結果(參考) : AC (5ms, 340KB)

#include <bits/stdc++.h>
using namespace std;
#define int long long

int key, val;

void split(string& s){
    key = 0;
    val = 0;
    
    int i = 0;
    
    for(; s[i]!=':'; i++)
        key = key*10 + (s[i]-'0');
        
    for(i+=1; i<s.size(); i++)
        val = val*10 + (s[i]-'0');
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    unordered_map<int, int> um;
    string s;
    int ans = 0;
    
    while(cin >> s && s != "0:0"){
        split(s);
        um[key] = val;
    }
    while(cin >> s && s != "0:0"){
        split(s);
        if(um.count(key)) ans += um[key]*val;
    }
    cout << ans << "\n";
    
    return 0;
}