結果
問題 | No.496 ワープクリスタル (給料日前編) |
ユーザー |
![]() |
提出日時 | 2017-03-25 00:56:19 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 832 bytes |
コンパイル時間 | 147 ms |
コンパイル使用メモリ | 32,768 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-06 03:22:22 |
合計ジャッジ時間 | 957 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 |
ソースコード
#include <stdio.h>#include <string.h>#include <ctype.h>#include <math.h>#include <stdlib.h>#define INF 1000000000;int min(int a,int b);int main(void){int gx,gy,n,f;scanf("%d %d %d %d",&gx,&gy,&n,&f);int x[50],y[50],c[50];int i,j,k;for(i=0;i<n;i++){scanf("%d %d %d",&x[i],&y[i],&c[i]);}unsigned long dp[gx+1][gy+1];for(j=0;j<=gx;j++){for(k=0;k<=gy;k++){dp[j][k]=INF;}}dp[0][0]=0;for(i=0;i<n;i++){for(j=gx;j>=0;j--){for(k=gy;k>=0;k--){if(j+x[i]<=gx && k+y[i]<=gy){dp[j+x[i]][k+y[i]]=min(dp[j][k]+c[i],dp[j+x[i]][k+y[i]]);}}}}unsigned long ans=INF;for(j=0;j<=gx;j++){for(k=0;k<=gy;k++){dp[j][k]+=f*(gx-j+gy-k);ans=min(ans,dp[j][k]);}}printf("%lu\n",ans);return 0;}int min(int a,int b){if(a<=b){return a;}else{return b;}}