Submission #11249885
Source Code Expand
using System;
using System.Linq;
using System.Collections.Generic;
namespace Contest
{
class Program
{
static void Main(string[] args)
{
AGC015.C();
}
class AGC015
{
public static void A()
{
var N = Read.Long();
var A = Read.Long();
var B = Read.Long();
Console.WriteLine((A > B || (N == 1 && A != B)) ? 0 : (N - 2) * (B - A) + 1);
}
public static void B()
{
var S = Read.Str();
long N = S.Length;
long count = N * (N - 1);
for(int i = 0; i < N; ++i)
{
count += S[i] == 'U' ? i : N - i - 1;
}
Console.WriteLine(count);
}
public static void C()
{
var N = Read.Int();
var M = Read.Int();
var Q = Read.Int();
bool[,] S = new bool[N, M];
for(int i = 0; i < N; ++i)
{
var str = Read.Str();
for(int j = 0; j < M; ++j)
{
S[i, j] = str[j] == '1';
}
}
int[,] Ssum = new int[N + 1, M + 1];
int[,] T1Sum = new int[N + 1, M];
int[,] T2Sum = new int[N, M + 1];
for(int i = 0; i < N; ++i)
{
for(int j = 0; j < M; ++j)
{
Ssum[i + 1, j + 1] = Ssum[i + 1, j] + Ssum[i, j + 1] - Ssum[i, j] + (S[i, j] ? 1 : 0);
}
}
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M -1; ++j)
{
T1Sum[i + 1, j + 1] = T1Sum[i + 1, j] + T1Sum[i, j + 1] - T1Sum[i, j] + (S[i, j] && S[i, j + 1] ? 1 : 0);
}
}
for (int i = 0; i < N -1; ++i)
{
for (int j = 0; j < M; ++j)
{
T2Sum[i + 1, j + 1] = T2Sum[i + 1, j] + T2Sum[i, j + 1] - T2Sum[i, j] + (S[i, j] && S[i + 1, j] ? 1 : 0);
}
}
for(int q = 0; q < Q; ++q)
{
var xy = Read.IntN();
var x1 = xy[0];
var y1 = xy[1];
var x2 = xy[2];
var y2 = xy[3];
var countS = Ssum[x2, y2] - Ssum[x1 - 1, y2] - Ssum[x2, y1 - 1] + Ssum[x1 - 1, y1 - 1];
var countT1 = T1Sum[x2, y2 - 1] - T1Sum[x1 - 1, y2 - 1] - T1Sum[x2, y1 - 1] + T1Sum[x1 - 1, y1 - 1];
var countT2 = T2Sum[x2 - 1, y2] - T2Sum[x1 - 1, y2] - T2Sum[x2 - 1, y1 - 1] + T2Sum[x1 - 1, y1 - 1];
Console.WriteLine(countS - countT1 - countT2);
}
}
public static void D()
{
}
public static void E()
{
}
public static void F()
{
}
}
class Graph
{
public static int[] CalcDistance_OnTree(Dictionary<int, HashSet<int>> adj, int N, int start)
{
var dist = Enumerable.Range(0, N + 1).Select(i => -1).ToArray();
dist[start] = 0;
Queue<int> queue = new Queue<int>();
queue.Enqueue(start);
while (queue.Count > 0)
{
var v = queue.Dequeue();
foreach (var w in adj[v])
{
if (dist[w] < 0)
{
dist[w] = dist[v] + 1;
queue.Enqueue(w);
}
}
}
return dist;
}
}
static class Read
{
static Queue<string> queue = new Queue<string>();
static void Enqueue() { var ss = Console.ReadLine().Split(' '); foreach (var s in ss) { queue.Enqueue(s); } }
public static int Int() { if (queue.Count == 0) { Enqueue(); } return Convert.ToInt32(queue.Dequeue()); }
public static long Long() { if (queue.Count == 0) { Enqueue(); } return Convert.ToInt64(queue.Dequeue()); }
public static string Str() { if (queue.Count == 0) { Enqueue(); } return queue.Dequeue(); }
public static int[] IntN() { return Console.ReadLine().Split(' ').Select(s => Convert.ToInt32(s)).ToArray(); }
public static long[] LongN() { return Console.ReadLine().Split(' ').Select(s => Convert.ToInt64(s)).ToArray(); }
public static string[] StrN() { return Console.ReadLine().Split(' '); }
public static Tuple<int, int>[] TupleInt(int n) { List<Tuple<int, int>> list = new List<Tuple<int, int>>(); for (int i = 0; i < n; ++i) { var ab = Read.IntN(); list.Add(new Tuple<int, int>(ab[0], ab[1])); } return list.ToArray(); }
public static Tuple<long, long>[] TupleLong(int n) { List<Tuple<long, long>> list = new List<Tuple<long, long>>(); for (int i = 0; i < n; ++i) { var ab = Read.LongN(); list.Add(new Tuple<long, long>(ab[0], ab[1])); } return list.ToArray(); }
public static Tuple<string, string>[] TupleStr(int n) { List<Tuple<string, string>> list = new List<Tuple<string, string>>(); for (int i = 0; i < n; ++i) { var ab = Read.StrN(); list.Add(new Tuple<string, string>(ab[0], ab[1])); } return list.ToArray(); }
public static Tuple<double, double>[] TupleDouble(int n) { List<Tuple<double, double>> list = new List<Tuple<double, double>>(); for (int i = 0; i < n; ++i) { var ab = Read.LongN(); list.Add(new Tuple<double, double>(ab[0], ab[1])); } return list.ToArray(); }
public static long[,] LongMatrix(int r, int c)
{
var mat = new long[r, c];
for (int i = 0; i < r; ++i)
{
var x = Read.LongN();
for (int j = 0; j < c; ++j)
{
mat[i, j] = x[j];
}
}
return mat;
}
public static Dictionary<int, HashSet<int>> AdjacencyList(int N, int M)
{
Dictionary<int, HashSet<int>> dict = new Dictionary<int, HashSet<int>>();
for (int i = 0; i <= N; ++i)
{
dict.Add(i, new HashSet<int>());
}
for (int i = 0; i < M; ++i)
{
var ab = Read.IntN();
dict[ab[0]].Add(ab[1]);
dict[ab[1]].Add(ab[0]);
}
return dict;
}
public static Dictionary<int, Dictionary<int, long>> AdjacencyListWithWeight(int N, int M)
{
Dictionary<int, Dictionary<int, long>> dict = new Dictionary<int, Dictionary<int, long>>();
for (int i = 0; i <= N; ++i)
{
dict.Add(i, new Dictionary<int, long>());
}
for (int i = 0; i < M; ++i)
{
var ab = Read.IntN();
dict[ab[0]].Add(ab[1], ab[2]);
dict[ab[1]].Add(ab[0], ab[2]);
}
return dict;
}
}
}
}
Submission Info
Submission Time |
|
Task |
C - Nuske vs Phantom Thnook |
User |
UsagiSony |
Language |
C# (Mono 4.6.2.0) |
Score |
700 |
Code Size |
7820 Byte |
Status |
AC |
Exec Time |
1970 ms |
Memory |
69080 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
700 / 700 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, s1.txt, s2.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
1846 ms |
67296 KB |
02.txt |
AC |
1970 ms |
65240 KB |
03.txt |
AC |
1832 ms |
67192 KB |
04.txt |
AC |
1918 ms |
66904 KB |
05.txt |
AC |
1895 ms |
67548 KB |
06.txt |
AC |
1946 ms |
67288 KB |
07.txt |
AC |
1760 ms |
64604 KB |
08.txt |
AC |
1841 ms |
63084 KB |
09.txt |
AC |
1789 ms |
60244 KB |
10.txt |
AC |
1931 ms |
67168 KB |
11.txt |
AC |
1885 ms |
67420 KB |
12.txt |
AC |
1695 ms |
34420 KB |
13.txt |
AC |
1698 ms |
18444 KB |
14.txt |
AC |
1527 ms |
16396 KB |
15.txt |
AC |
1462 ms |
15872 KB |
16.txt |
AC |
1552 ms |
18208 KB |
17.txt |
AC |
1512 ms |
16432 KB |
18.txt |
AC |
1518 ms |
14024 KB |
19.txt |
AC |
1532 ms |
16448 KB |
20.txt |
AC |
1775 ms |
59452 KB |
21.txt |
AC |
1795 ms |
66788 KB |
22.txt |
AC |
1905 ms |
65116 KB |
23.txt |
AC |
1527 ms |
16644 KB |
24.txt |
AC |
1895 ms |
67168 KB |
25.txt |
AC |
1512 ms |
16000 KB |
26.txt |
AC |
1597 ms |
14184 KB |
27.txt |
AC |
1530 ms |
18240 KB |
28.txt |
AC |
1557 ms |
17992 KB |
29.txt |
AC |
1524 ms |
16408 KB |
30.txt |
AC |
1545 ms |
16256 KB |
31.txt |
AC |
1798 ms |
67800 KB |
32.txt |
AC |
1865 ms |
67540 KB |
33.txt |
AC |
1846 ms |
67040 KB |
34.txt |
AC |
1880 ms |
65372 KB |
35.txt |
AC |
1786 ms |
66908 KB |
36.txt |
AC |
1912 ms |
68964 KB |
37.txt |
AC |
1791 ms |
69080 KB |
38.txt |
AC |
1877 ms |
66916 KB |
39.txt |
AC |
1796 ms |
67548 KB |
40.txt |
AC |
1877 ms |
65372 KB |
41.txt |
AC |
1841 ms |
65120 KB |
42.txt |
AC |
1894 ms |
69080 KB |
43.txt |
AC |
1757 ms |
66652 KB |
44.txt |
AC |
1870 ms |
68832 KB |
45.txt |
AC |
28 ms |
11476 KB |
46.txt |
AC |
28 ms |
11476 KB |
47.txt |
AC |
29 ms |
11476 KB |
48.txt |
AC |
28 ms |
11476 KB |
s1.txt |
AC |
27 ms |
9428 KB |
s2.txt |
AC |
28 ms |
11476 KB |