結果
| 問題 |
No.440 2次元チワワ問題
|
| コンテスト | |
| ユーザー |
suppy193
|
| 提出日時 | 2016-11-14 12:58:21 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,373 bytes |
| コンパイル時間 | 359 ms |
| コンパイル使用メモリ | 24,392 KB |
| 実行使用メモリ | 13,636 KB |
| 最終ジャッジ日時 | 2024-11-25 22:20:47 |
| 合計ジャッジ時間 | 76,726 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 15 TLE * 11 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:19:17: warning: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]
19 | gets(s);
| ^~~~
| fgets
main.c:35:18: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
35 | printf("%d\n", sizeof(tate));
| ~^ ~~~~~~~~~~~~
| | |
| int long unsigned int
| %ld
main.c:50:17: warning: implicit declaration of function ‘memset’ [-Wimplicit-function-declaration]
50 | memset(yoko, 0, sizeof(yoko));
| ^~~~~~
main.c:2:1: note: include ‘<string.h>’ or provide a declaration of ‘memset’
1 | #include <stdio.h>
+++ |+#include <string.h>
2 |
main.c:50:17: warning: incompatible implicit declaration of built-in function ‘memset’ [-Wbuiltin-declaration-mismatch]
50 | memset(yoko, 0, sizeof(yoko));
| ^~~~~~
main.c:50:17: note: include ‘<string.h>’ or provide a declaration of ‘memset’
main.c:17:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
17 | scanf("%d%d\n", &h, &w);
| ^~~~~~~~~~~~~~~~~~~~~~~
main.c:33:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
33 | scanf("%d", &q);
| ^~~~~~~~~~~~~~~
main.c:54:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
54 | scanf("%d%d%d%d", &a, &b, &c, &d);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccvJENiR.o: in function `main':
main.c:(.text.startup+0x116): 警告: the `gets' function is dangerous and should not be
ソースコード
#include <stdio.h>
int main(void) {
char s[501];
char field[501][501] = {0};
char yoko[501][501][3] = {0};
char yoko_r[501][501][3] = {0};
char tate[501][501][3] = {0};
char 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);
printf("%d\n", sizeof(tate));
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, 0, sizeof(yoko));
memset(tate, 0, sizeof(tate));
memset(yoko_r, 0, sizeof(yoko_r));
memset(tate_r, 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