#31456: 新手程度解法cpp(我的程度)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [150.116.71.76]
最後登入時間 :
2023-07-15 21:32:51
b512. 高維度稀疏向量 -- 清華 MOOCs 2014 程式設計導論期末考 | From: [150.116.71.227] | 發表日期 : 2022-08-02 14:14

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m, sum2=0;//分別是冒號前的數字以及冒號後的數字還有輸出
    char c;//代指冒號
    vector<int> v1, v2;//vector就不用管大小了
    while (cin >> n >> c >> m){
        v1.push_back(n);
        v2.push_back(m);
    }
    for (int i=0; i<v1.size(); i++){
        int sum1=0;
        if (count(v1.begin(), v1.end(), v1[i])==2 && v1[i]!=0){
            sum1 += v2[i];
            for (int j=i+1; j<v1.size(); j++){
                if (v1[j]==v1[i] && v1[j]!=0){
                    sum1 *= v2[j];
                    v1[j]=0;//避免再算一次
                }
            }
            sum2 += sum1;
        }
    }//找到一個dim的count是二後再從索引值 i 後搜尋和其相同的數(用sum1把value的乘積存起來再灌入sum2)
    cout << sum2 << '\n';
    return 0;
}

 
ZeroJudge Forum