Submission #365108
Source Code Expand
#include <stdio.h>
struct Point
{
enum F_TYPE{
FLOAR_SIRO,
FLOAR_KURO,
};
F_TYPE type;
int siro;
int kuro;
int maxX;
Point()
:siro(0)
,kuro(0)
,maxX(0)
{}
};
int W, H, T;
int getIndex( int x, int y )
{
return x + y*W;
}
// 愚直に・・・
void solve( Point* table, int x, int y, int A, int B )
{
if( x < 0 || y < 0 || x >= W || y >= H ){
return;
}
int index = getIndex(x, y);
switch(table[index].type){
case Point::FLOAR_SIRO:
{
++A;
break;
}
case Point::FLOAR_KURO:
{
++B;
break;
}
}
int maxX = 0;
if( B > 0 ) {
maxX = (T - A) / B;
}
else{
maxX = T;
}
if( maxX == 0 ){
return;
}
if( maxX > table[index].maxX ||
( maxX == table[index].maxX && A < table[index].siro ) )
{
table[index].siro = A;
table[index].kuro = B;
table[index].maxX = maxX;
// 上下左右に進む
solve(table, x+1, y, A, B);
solve(table, x-1, y, A, B);
solve(table, x, y+1, A, B);
solve(table, x, y-1, A, B);
}
else{
// 終了?
}
}
int main()
{
scanf("%d %d %d", &H, &W, &T);
Point* floar = new Point[W*H];
int startX, startY;
int endX, endY;
// read
char* line = new char[W+1];
for( int y = 0; y < H; ++y ){
scanf("%s", line);
for( int x = 0; x < W; ++x ){
int index = getIndex(x,y);
char c = line[x];
switch (c) {
case 'S':
{
startX = x;
startY = y;
floar[index].type = Point::FLOAR_SIRO;
break;
}
case 'G':
{
endX = x;
endY = y;
floar[index].type = Point::FLOAR_SIRO;
break;
}
case '.':
{
floar[index].type = Point::FLOAR_SIRO;
break;
}
case '#':
{
floar[index].type = Point::FLOAR_KURO;
break;
}
}
}
}
solve( floar, startX, startY, -1, 0 );
printf("%d\n",floar[getIndex(endX,endY)].maxX);
delete[] line;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - 壁抜け |
| User | Neige |
| Language | C++ (GCC 4.9.2) |
| Score | 40 |
| Code Size | 1985 Byte |
| Status | WA |
| Exec Time | 28 ms |
| Memory | 924 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:82:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d", &H, &W, &T);
^
./Main.cpp:92:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s", line);
^
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 40 / 40 | 0 / 30 | 0 / 30 | ||||||||||||
| Status |
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
| Subtask1 | subtask0_sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt |
| Subtask2 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt |
| Subtask3 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask3_41.txt, subtask3_42.txt, subtask3_43.txt, subtask3_44.txt, subtask3_45.txt, subtask3_46.txt, subtask3_47.txt, subtask3_48.txt, subtask3_49.txt, subtask3_50.txt, subtask3_51.txt, subtask3_52.txt, subtask3_53.txt, subtask3_54.txt, subtask3_55.txt, subtask3_56.txt, subtask3_57.txt, subtask3_58.txt, subtask3_59.txt, subtask3_60.txt, subtask3_61.txt, subtask3_62.txt, subtask3_63.txt, subtask3_64.txt, subtask3_65.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0_sample_01.txt | AC | 25 ms | 796 KiB |
| subtask0_sample_02.txt | AC | 25 ms | 800 KiB |
| subtask0_sample_03.txt | AC | 23 ms | 800 KiB |
| subtask1_01.txt | AC | 25 ms | 800 KiB |
| subtask1_02.txt | AC | 23 ms | 672 KiB |
| subtask1_03.txt | AC | 24 ms | 804 KiB |
| subtask1_04.txt | AC | 26 ms | 796 KiB |
| subtask1_05.txt | AC | 24 ms | 672 KiB |
| subtask1_06.txt | AC | 24 ms | 800 KiB |
| subtask1_07.txt | AC | 25 ms | 800 KiB |
| subtask1_08.txt | AC | 25 ms | 796 KiB |
| subtask1_09.txt | AC | 25 ms | 800 KiB |
| subtask1_10.txt | AC | 25 ms | 840 KiB |
| subtask1_11.txt | AC | 24 ms | 796 KiB |
| subtask1_12.txt | AC | 25 ms | 796 KiB |
| subtask1_13.txt | AC | 24 ms | 800 KiB |
| subtask1_14.txt | AC | 24 ms | 672 KiB |
| subtask1_15.txt | AC | 25 ms | 796 KiB |
| subtask2_16.txt | AC | 25 ms | 800 KiB |
| subtask2_17.txt | AC | 25 ms | 800 KiB |
| subtask2_18.txt | WA | 23 ms | 800 KiB |
| subtask2_19.txt | AC | 25 ms | 800 KiB |
| subtask2_20.txt | WA | 25 ms | 668 KiB |
| subtask2_21.txt | AC | 25 ms | 796 KiB |
| subtask2_22.txt | AC | 25 ms | 800 KiB |
| subtask2_23.txt | AC | 25 ms | 736 KiB |
| subtask2_24.txt | AC | 25 ms | 804 KiB |
| subtask2_25.txt | AC | 25 ms | 732 KiB |
| subtask2_26.txt | AC | 25 ms | 792 KiB |
| subtask2_27.txt | AC | 24 ms | 800 KiB |
| subtask2_28.txt | AC | 24 ms | 676 KiB |
| subtask2_29.txt | AC | 27 ms | 796 KiB |
| subtask2_30.txt | AC | 23 ms | 672 KiB |
| subtask2_31.txt | AC | 25 ms | 672 KiB |
| subtask2_32.txt | AC | 24 ms | 796 KiB |
| subtask2_33.txt | AC | 25 ms | 676 KiB |
| subtask2_34.txt | AC | 23 ms | 924 KiB |
| subtask2_35.txt | AC | 24 ms | 800 KiB |
| subtask2_36.txt | AC | 25 ms | 672 KiB |
| subtask2_37.txt | AC | 26 ms | 800 KiB |
| subtask2_38.txt | AC | 26 ms | 736 KiB |
| subtask2_39.txt | AC | 25 ms | 800 KiB |
| subtask2_40.txt | AC | 25 ms | 796 KiB |
| subtask3_41.txt | AC | 26 ms | 800 KiB |
| subtask3_42.txt | AC | 24 ms | 796 KiB |
| subtask3_43.txt | AC | 25 ms | 712 KiB |
| subtask3_44.txt | AC | 26 ms | 672 KiB |
| subtask3_45.txt | AC | 25 ms | 800 KiB |
| subtask3_46.txt | AC | 25 ms | 800 KiB |
| subtask3_47.txt | AC | 28 ms | 672 KiB |
| subtask3_48.txt | AC | 25 ms | 788 KiB |
| subtask3_49.txt | AC | 25 ms | 920 KiB |
| subtask3_50.txt | AC | 25 ms | 672 KiB |
| subtask3_51.txt | AC | 24 ms | 800 KiB |
| subtask3_52.txt | AC | 24 ms | 800 KiB |
| subtask3_53.txt | AC | 25 ms | 672 KiB |
| subtask3_54.txt | AC | 25 ms | 732 KiB |
| subtask3_55.txt | AC | 24 ms | 796 KiB |
| subtask3_56.txt | AC | 24 ms | 792 KiB |
| subtask3_57.txt | AC | 24 ms | 796 KiB |
| subtask3_58.txt | AC | 25 ms | 672 KiB |
| subtask3_59.txt | AC | 25 ms | 920 KiB |
| subtask3_60.txt | AC | 25 ms | 796 KiB |
| subtask3_61.txt | AC | 25 ms | 732 KiB |
| subtask3_62.txt | AC | 25 ms | 732 KiB |
| subtask3_63.txt | AC | 26 ms | 800 KiB |
| subtask3_64.txt | AC | 24 ms | 672 KiB |
| subtask3_65.txt | AC | 24 ms | 800 KiB |