結果
| 問題 |
No.60 魔法少女
|
| コンテスト | |
| ユーザー |
mban
|
| 提出日時 | 2017-05-01 11:11:14 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 329 ms / 5,000 ms |
| コード長 | 2,047 bytes |
| コンパイル時間 | 2,426 ms |
| コンパイル使用メモリ | 112,600 KB |
| 実行使用メモリ | 41,156 KB |
| 最終ジャッジ日時 | 2024-09-14 01:49:43 |
| 合計ジャッジ時間 | 5,133 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 10 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
new Magatro().Solve();
}
}
class Magatro
{
private int N, K;
private int[] X, Y, HP, AX, AY, W, H, D;
private void Scan()
{
string[] s = Console.ReadLine().Split(' ');
N = int.Parse(s[0]);
K = int.Parse(s[1]);
X = new int[N];
Y = new int[N];
HP = new int[N];
for (int i = 0; i < N; i++)
{
s = Console.ReadLine().Split(' ');
X[i] = int.Parse(s[0]) + 500;
Y[i] = int.Parse(s[1]) + 500;
HP[i] = int.Parse(s[2]);
}
AX = new int[K];
AY = new int[K];
W = new int[K];
H = new int[K];
D = new int[K];
for (int i = 0; i < K; i++)
{
s = Console.ReadLine().Split(' ');
AX[i] = int.Parse(s[0]) + 500;
AY[i] = int.Parse(s[1]) + 500;
W[i] = int.Parse(s[2]);
H[i] = int.Parse(s[3]);
D[i] = int.Parse(s[4]);
}
}
public void Solve()
{
Scan();
int[,] imos = new int[1502, 1502];
for (int i = 0; i < K; i++)
{
imos[AY[i], AX[i]] += D[i];
imos[AY[i] + H[i] + 1, AX[i]] -= D[i];
imos[AY[i], AX[i] + W[i] + 1] -= D[i];
imos[AY[i] + H[i] + 1, AX[i] + W[i] + 1] += D[i];
}
for (int i = 1; i <= 1501; i++)
{
for (int j = 0; j <= 1500; j++)
{
imos[i, j] += imos[i - 1, j];
}
}
for (int i = 1; i <= 1501; i++)
{
for (int j = 0; j <= 1500; j++)
{
imos[j, i] += imos[j, i - 1];
}
}
int sum = 0;
for(int i = 0; i < N; i++)
{
sum += Math.Max(0, HP[i] - imos[Y[i], X[i]]);
}
Console.WriteLine(sum);
}
}
mban