結果
| 問題 |
No.60 魔法少女
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-08-26 09:51:41 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2,987 ms / 5,000 ms |
| コード長 | 1,089 bytes |
| コンパイル時間 | 2,019 ms |
| コンパイル使用メモリ | 65,376 KB |
| 実行使用メモリ | 8,400 KB |
| 最終ジャッジ日時 | 2024-11-08 03:19:15 |
| 合計ジャッジ時間 | 18,605 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 10 |
ソースコード
#include <iostream>
#include <vector>
#include <tuple>
using namespace std;
int aa[1001][1001];
int main(){
int n,k,x,y,hp,ax,ay,w,h,d;
cin>>n>>k;
vector<tuple<int,int,int>> v;
int eax=0;
int eix=1000;
int eay=0;
int eiy=1000;
for(int i=0; i<n; ++i){
cin>>x>>y>>hp;
int a=x+500;
int b=y+500;
if(a>eax) eax=a;
if(a<eix) eix=a;
if(b>eay) eay=b;
if(b<eiy) eiy=b;
tuple<int,int,int> t=make_tuple(a,b,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;
if(sx<eix) sx=eix;
if(ex>eax) ex=eax;
if(sy<eiy) sy=eiy;
if(ey>eax) ey=eax;
for(int j=sx; j<=ex; ++j){
for(int k=sy; k<=ey; ++k){
aa[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);
thp-=aa[tx][ty];
if(thp<0) thp=0;
z+=thp;
}
cout<<z<<endl;
return 0;
}