結果
| 問題 |
No.496 ワープクリスタル (給料日前編)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-03-28 23:35:15 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 853 bytes |
| コンパイル時間 | 725 ms |
| コンパイル使用メモリ | 77,272 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-06 13:32:34 |
| 合計ジャッジ時間 | 1,305 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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;
}