結果

提出番号 2174
提出者 kim
言語 C++
提出日時 2018-08-23 13:46:57
問題名 (70)アルゴリズムのお勉強
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 WA 0% 2ms 8400KB
2 WA 0% 2ms 8144KB
3 WA 0% 2ms 7792KB
4 WA 0% 2ms 7248KB
5 AC 100% 2ms 8416KB
6 WA 0% 2ms 8448KB
7 AC 100% 2ms 8432KB
8 AC 100% 2ms 8000KB
9 WA 0% 2ms 8192KB
10 WA 0% 2ms 7520KB
11 WA 0% 2ms 7776KB
12 WA 0% 2ms 8144KB
13 WA 0% 2ms 8080KB
14 WA 0% 2ms 8192KB
15 WA 0% 2ms 7248KB
16 WA 0% 2ms 8176KB
17 AC 100% 2ms 8736KB
18 WA 0% 2ms 8400KB
19 WA 0% 2ms 8432KB
20 WA 0% 2ms 7536KB
21 AC 100% 2ms 7776KB
22 WA 0% 2ms 8448KB
23 WA 0% 2ms 7648KB
24 WA 0% 2ms 7632KB
25 WA 0% 2ms 8448KB
26 WA 0% 2ms 7536KB
27 WA 0% 2ms 7920KB
28 WA 0% 2ms 7968KB
29 WA 0% 2ms 8384KB
30 WA 0% 2ms 8416KB

ソースコード

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;
typedef pair<int,int> P;

#define INF (100000000)

int main() {
    int N;
    cin >> N;
    vector<int> A[N];
    vector<int> H(N,0);
    vector<int> W(N,0);
    vector<P> D(N);

    int ans=0;

    for(int i=0; i<N; ++i) {
        int temp;
        cin >> temp;
        ans+=temp;
    }
    for(int i=0; i<N; ++i) {
        A[i].resize(N);
        for(int j=0; j<N; ++j) {
            cin >> A[i][j];
            W[i]+=A[i][j];
            H[j]+=A[i][j];
        }
    }

    for(int i=0; i<N; ++i) {
        for(int j=0; j<N; ++j) {
            D[j]=make_pair(W[j]-H[j],j);
        }
        sort(D.rbegin(),D.rend());
        int tidx=D[0].second;
        ans-=W[tidx];
        H[tidx]=INF;
        for(int c=0; c<N; ++c) {
            W[c]-=A[c][tidx];
            H[c]-=A[tidx][c];
        }
    }

    cout << ans << endl;

    return 0;
}