結果
| 問題 |
No.60 魔法少女
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-08-26 09:24:49 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 3,007 ms / 5,000 ms |
| コード長 | 890 bytes |
| コンパイル時間 | 749 ms |
| コンパイル使用メモリ | 65,880 KB |
| 実行使用メモリ | 8,404 KB |
| 最終ジャッジ日時 | 2024-11-08 03:16:53 |
| 合計ジャッジ時間 | 18,634 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 10 |
ソースコード
#include <iostream>
#include <vector>
#include <tuple>
using namespace std;
int arr[1001][1001];
int main(){
int n,k,x,y,hp,ax,ay,w,h,d;
cin>>n>>k;
vector<tuple<int,int,int>> v;
for(int i=0; i<n; ++i){
cin>>x>>y>>hp;
tuple<int,int,int> t=make_tuple(x,y,hp);
v.push_back(t);
}
for(int i=0; i<k; ++i){
cin>>ax>>ay>>w>>h>>d;
int sx,ex,sy,ey;
sx=ax+500;
ex=ax+500+w;
if(ex>1000) ex=1000;
sy=ay+500;
ey=ay+500+h;
if(ey>1000) ey=1000;
for(int j=sx; j<=ex; ++j){
for(int k=sy; k<=ey; ++k){
arr[j][k]+=d;
}
}
}
int z=0;
for(int i=0; i<v.size(); ++i){
tuple<int,int,int> t=v[i];
int& tx=get<0>(t);
int& ty=get<1>(t);
int& thp=get<2>(t);
int tx2=tx+500;
int ty2=ty+500;
int thp2=thp;
thp2-=arr[tx2][ty2];
if(thp2<0) thp2=0;
z+=thp2;
}
cout<<z<<endl;
return 0;
}