結果

問題 No.614 壊れたキャンパス
コンテスト
ユーザー jiang0503
提出日時 2018-03-22 15:42:00
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
RE  
実行時間 -
コード長 1,417 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 493 ms
コンパイル使用メモリ 85,392 KB
実行使用メモリ 16,128 KB
最終ジャッジ日時 2026-03-11 00:25:38
合計ジャッジ時間 3,999 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4 WA * 5 RE * 11
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <map>

using namespace std;



int main() {

    unsigned int tmpA;
    unsigned long tmpB, tmpC;
    unsigned int n;
    unsigned int m;
    unsigned long k;
    unsigned long start, terminate;
    map<unsigned int, unsigned long> maxCorridor;
    unsigned long sumCorridor=0;

    cin>>n>>m>>k>>start>>terminate;
    if(start<terminate) {

        for (int i = 0; i < m; i++) {
            cin >> tmpA >> tmpB >> tmpC;
            if (maxCorridor.count(tmpA) == 0 || maxCorridor[tmpA] < tmpC - tmpB)
                maxCorridor[tmpA] = tmpC - tmpB;
        }

        for (unsigned int i = 1; i < n; ++i) {
            if (maxCorridor.count(i) == 0) {
                cout << "-1" << endl;
                return 1;
            }
            sumCorridor += maxCorridor[i];
        }

        cout << terminate - start - sumCorridor << endl;
    }
    else
    {
        for (int i = 0; i < m; i++) {
            cin >> tmpA >> tmpB >> tmpC;
            if (maxCorridor.count(tmpA) == 0 || maxCorridor[tmpA] < tmpB - tmpC)
                maxCorridor[tmpA] = tmpB - tmpC;
        }

        for (unsigned int i = 1; i < n; ++i) {
            if (maxCorridor.count(i) == 1) {
                cout << "-1" << endl;
                return 1;
            }
            sumCorridor += maxCorridor[i];
        }

        cout << start - terminate - sumCorridor << endl;
    }


    return 0;
}
0