結果
| 問題 |
No.440 2次元チワワ問題
|
| コンテスト | |
| ユーザー |
suppy193
|
| 提出日時 | 2016-11-14 16:25:24 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,388 bytes |
| コンパイル時間 | 275 ms |
| コンパイル使用メモリ | 24,320 KB |
| 実行使用メモリ | 27,136 KB |
| 最終ジャッジ日時 | 2024-11-26 01:08:59 |
| 合計ジャッジ時間 | 94,919 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 TLE * 13 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:20:17: warning: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]
20 | gets(s);
| ^~~~
| fgets
main.c:18:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
18 | scanf("%d%d\n", &h, &w);
| ^~~~~~~~~~~~~~~~~~~~~~~
main.c:34:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
34 | scanf("%d", &q);
| ^~~~~~~~~~~~~~~
main.c:55:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
55 | scanf("%d%d%d%d", &a, &b, &c, &d);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccRPO0Zq.o: in function `main':
main.c:(.text.startup+0x126): 警告: the `gets' function is dangerous and should not be used.
ソースコード
#include <stdio.h>
#include <string.h>
int main(void) {
char s[501];
char field[501][501] = {0};
int yoko[501][501][3] = {0};
int yoko_r[501][501][3] = {0};
int tate[501][501][3] = {0};
int tate_r[501][501][3] = {0};
int h, w;
int q;
int a, b, c, d;
int i, k;
int x, y;
int xx, yy;
int cnt;
scanf("%d%d\n", &h, &w);
for(y = 1;y <= h;y++){
gets(s);
for(x = 1;x <= w;x++){
field[y][x] = s[x - 1];
//printf("%d:%s\n", i, field[i]);
}
}
/*
for(y = 1;y <= h;y++){
for(x = 1;x <= w;x++){
printf("%c", field[y][x]);
}
printf("\n");
}
*/
scanf("%d", &q);
//printf("q:%d\n", q);
for(i = 0;i < q;i++){
cnt = 0;
/*
for(y = 0;y <= 500;y++){
for(x = 0;x <= 500;x++){
for(k = 0;k < 3;k++){
//yoko[y][x][k] = 0;
//tate[y][x][k] = 0;
//yoko_r[y][x][k] = 0;
//tate_r[y][x][k] = 0;
}
}
}
*/
memset(yoko, (int)0, sizeof(yoko));
memset(tate, (int)0, sizeof(tate));
memset(yoko_r, (int)0, sizeof(yoko_r));
memset(tate_r, (int)0, sizeof(tate_r));
scanf("%d%d%d%d", &a, &b, &c, &d);
//printf("%d %d %d %d\n", a, b, c, d);
for(y = a;y <= c;y++){
for(x = b;x <= d;x++){
//printf("%c", field[y][x]);
if(field[y][x] == 'c'){
yoko[y][x][0] = 1;
tate[y][x][0] = 1;
}
if(field[y][x] == 'w'){
for(xx = b;xx < x;xx++){
yoko[y][x][1] += yoko[y][xx][0];
yoko[y][x][2] += yoko[y][xx][1];
}
for(yy = a;yy < y;yy++){
tate[y][x][1] += tate[yy][x][0];
tate[y][x][2] += tate[yy][x][1];
}
}
}
//printf("\n");
}
//printf("\n");
for(y = c;y >= a;y--){
for(x = d;x >= b;x--){
//printf("%c", field[y][x]);
if(field[y][x] == 'c'){
yoko_r[y][x][0] = 1;
tate_r[y][x][0] = 1;
}
if(field[y][x] == 'w'){
for(xx = d;xx > x;xx--){
yoko_r[y][x][1] += yoko_r[y][xx][0];
yoko_r[y][x][2] += yoko_r[y][xx][1];
}
for(yy = c;yy > y;yy--){
tate_r[y][x][1] += tate_r[yy][x][0];
tate_r[y][x][2] += tate_r[yy][x][1];
}
}
}
//printf("\n");
}
cnt = 0;
for(y = a;y <= c;y++){
for(x = b;x <= d;x++){
cnt += yoko[y][x][2] + tate[y][x][2] + yoko_r[y][x][2] + tate_r[y][x][2];
}
}
printf("%d\n", cnt);
/*
for(y = c;y >= a;y--){
for(x = d;x >= b;x--){
printf("%d ", tate_r[y][x][2]);
}
printf("\n");
}
printf("\n");
*/
}
return 0;
}
suppy193