結果
| 問題 |
No.60 魔法少女
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-03-23 12:06:45 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 705 bytes |
| コンパイル時間 | 1,542 ms |
| コンパイル使用メモリ | 167,480 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-05 20:35:43 |
| 合計ジャッジ時間 | 4,942 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 4 |
| other | RE * 10 |
ソースコード
#include <bits/stdc++.h>
typedef long long int ll;
using namespace std;
//ll mat[1100][1100];
ll atk[1100][1100];
ll mob[100010];
int n,kei;
int main(){
int i,j,k;
ll a,b,c,d;
cin>>n>>kei;
for(i=0;i<n;++i){
scanf("%d%d%d",&a,&b,&c);
a+=510;
b+=510;
mob[i]=a|(b<<16)|(c<<32);
}
for(i=0;i<kei;++i){
scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
atk[b][a]+=k;
atk[b+d][a]-=k;
atk[b][a+c]-=k;
atk[b+d][a+c]+=k;
}
for(i=1;i<1050;++i)
for(j=1;j<1050;++j)
atk[i][j]+=atk[i-1][j-1]-atk[i-1][j]-atk[i][j-1];
ll rslt=0;
for(i=0;i<n;++i){
a=mob[i];
rslt+=max(0ll,(a>>32)-atk[(a>>16)&0xffff][a&0xffff]);
}
cout<<rslt<<endl;
return 0;
}