알고리즘 문제/BOJ
16507번 어두운 건 무서워
parkit
2018. 11. 23. 18:37
728x90
반응형
https://www.acmicpc.net/problem/16507
쉬운 문제이다.
시간 초과를 해결하면 된다.
입력받으면서, 넓이를 저장한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <iostream> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> #include <map> using namespace std; long long Map[1001][1001] = { 0, }; int R = 0, C = 0, Q = 0; long long avg(int r1, int c1, int r2, int c2) { int dy = r2 - r1 + 1; int dx = c2 - c1 + 1; long long area = Map[r2][c2] - Map[r2][c2 - dx] - Map[r2 - dy][c2] + Map[r2 - dy][c2 - dx]; long long Count = dy*dx; return area / Count; } int main(void) { int R1 = 0, C1 = 0, R2 = 0, C2 = 0; long long K = 0; memset(Map, 0, sizeof(Map)); scanf("%d %d %d", &R, &C, &Q); for (int i = 1; i <= R; i++) { for (int j = 1; j <= C; j++) { long long Sum = 0; scanf("%lld", &K); Map[i][j] = Map[i- 1][j] + Map[i][j - 1] - Map[i - 1][j - 1] + K; } } for (int i = 0; i < Q; i++) { scanf("%d %d %d %d", &R1, &C1, &R2, &C2); printf("%lld\n", avg(R1, C1, R2, C2)); } return 0; } | cs |
728x90
반응형