結果
問題 |
No.496 ワープクリスタル (給料日前編)
|
ユーザー |
|
提出日時 | 2017-03-28 23:34:11 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 853 bytes |
コンパイル時間 | 551 ms |
コンパイル使用メモリ | 66,044 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-06 13:32:28 |
合計ジャッジ時間 | 1,239 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 4 WA * 19 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> struct crystal{ int x; int y; int c; int safe; }; using namespace std; int Gx,Gy; int N,F; int main(){ cin >> Gx >> Gy >> N >> F; vector<crystal> vec; int mx,my,mc,safe; for(int i = 0; i < N; i++){ cin >> mx >> my >> mc; if((mx+my)*F > mc){ safe = (mx+my)*F-mc; vec.push_back({mx,my,mc,safe}); }//歩くよりもコストが少ない } sort(vec.begin(),vec.end(), [](crystal& a,crystal& b) { return (a.safe < b.safe); }); /* for(auto e: vec){ << e.x << "," << e.y << "," << e.c << "," << e.safe<<endl; } */ int x = 0, y = 0,cost = 0; for(int i = 0; i < vec.size(); i++){ if(vec[i].x + x <= Gx && vec[i].y + y <= Gy){ x += vec[i].x; y += vec[i].y; cost += vec[i].c; } } cost += (Gx - x); cost += (Gy - y); cout << cost << endl; return 0; }