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 | import Stdio; int policz (array(string) tab, int a, int b, int c) { tab[a][b]='0'; if (a<9 && b>0 && tab[a+1][b-1]=='*') return -1000; if (a<9 && b<9 && tab[a+1][b+1]=='*') return -1000; if (c==0 && a<9 && tab[a+1][b]=='*') return -1000; if (c==1 && b<9 && tab[a][b+1]=='*') return -1000; if (c==-1 && a<9 && tab[a+1][b]=='*' && b<9 && tab[a][b+1]=='*') return -1000; if (c==0 && (b==9 || tab[a][b+1]=='0')) return 1; if (c==1 && (a==9 || tab[a+1][b]=='0')) return 1; if (c==-1 && (b==9 || tab[a][b+1]=='0') && (a==9 || tab[a+1][b]=='0')) return 1; if (c==0) return 1 + policz(tab,a,b+1,0); if (c==1) return 1 + policz(tab,a+1,b,1); if (c==-1) { if (b<9 && tab[a][b+1]=='*') return 1 + policz(tab,a,b+1,0); if (a<9 && tab[a+1][b]=='*') return 1 + policz(tab,a+1,b,1); } } int jedz (array(string) tab, array(int) bat) { int i,j,k; for (i=0;i<10;i++) for (j=0;j<10;j++) if (tab[i][j]=='*') { k = policz(tab,i,j,-1); if (k<0 || k>4) return 0; bat[k-1]--; } for (i=0;i<4;i++) if (bat[i]!=0) return 0; return 1; } int main() { array(string) tab = ({}); array(int) bat = ({0,0,0,0}); int n,i,j; string s; sscanf(stdin->gets(), "%d", n); for (i=0;i<n;i++) { for (j=0;j<10;j++) { sscanf(stdin->gets(), "%s", s); tab = tab + ({s}); } if (i!=n-1) sscanf(stdin->gets(), "%s", s); bat[0]=4; bat[1]=3; bat[2]=2; bat[3]=1; if (jedz(tab,bat) == 1) write("YES\n"); else write("NO\n"); tab = ({}); } return 0; } |
ICAgIGltcG9ydCBTdGRpbzsKICAgIAogICAgaW50IHBvbGljeiAoYXJyYXkoc3RyaW5nKSB0YWIsIGludCBhLCBpbnQgYiwgaW50IGMpIHsKICAgIAl0YWJbYV1bYl09JzAnOwogICAgCWlmIChhPDkgJiYgYj4wICYmIHRhYlthKzFdW2ItMV09PScqJykgcmV0dXJuIC0xMDAwOwogICAgCWlmIChhPDkgJiYgYjw5ICYmIHRhYlthKzFdW2IrMV09PScqJykgcmV0dXJuIC0xMDAwOwogICAgCWlmIChjPT0wICYmIGE8OSAmJiB0YWJbYSsxXVtiXT09JyonKSByZXR1cm4gLTEwMDA7CiAgICAJaWYgKGM9PTEgJiYgYjw5ICYmIHRhYlthXVtiKzFdPT0nKicpIHJldHVybiAtMTAwMDsKICAgIAlpZiAoYz09LTEgJiYgYTw5ICYmIHRhYlthKzFdW2JdPT0nKicgJiYgYjw5ICYmIHRhYlthXVtiKzFdPT0nKicpIHJldHVybiAtMTAwMDsKICAgIAlpZiAoYz09MCAmJiAoYj09OSB8fCB0YWJbYV1bYisxXT09JzAnKSkgcmV0dXJuIDE7CiAgICAJaWYgKGM9PTEgJiYgKGE9PTkgfHwgdGFiW2ErMV1bYl09PScwJykpIHJldHVybiAxOwogICAgCWlmIChjPT0tMSAmJiAoYj09OSB8fCB0YWJbYV1bYisxXT09JzAnKSAmJiAoYT09OSB8fCB0YWJbYSsxXVtiXT09JzAnKSkgcmV0dXJuIDE7CiAgICAJaWYgKGM9PTApIHJldHVybiAxICsgcG9saWN6KHRhYixhLGIrMSwwKTsKICAgIAlpZiAoYz09MSkgcmV0dXJuIDEgKyBwb2xpY3oodGFiLGErMSxiLDEpOwogICAgCWlmIChjPT0tMSkgewogICAgCQlpZiAoYjw5ICYmIHRhYlthXVtiKzFdPT0nKicpIHJldHVybiAxICsgcG9saWN6KHRhYixhLGIrMSwwKTsKICAgIAkJaWYgKGE8OSAmJiB0YWJbYSsxXVtiXT09JyonKSByZXR1cm4gMSArIHBvbGljeih0YWIsYSsxLGIsMSk7CiAgICAJfQogICAgfQogICAgCiAgICBpbnQgamVkeiAoYXJyYXkoc3RyaW5nKSB0YWIsIGFycmF5KGludCkgYmF0KSB7CiAgICAJaW50IGksaixrOwogICAgCWZvciAoaT0wO2k8MTA7aSsrKSBmb3IgKGo9MDtqPDEwO2orKykgaWYgKHRhYltpXVtqXT09JyonKSB7CiAgICAJCWsgPSBwb2xpY3oodGFiLGksaiwtMSk7CiAgICAJCWlmIChrPDAgfHwgaz40KSByZXR1cm4gMDsKICAgIAkJYmF0W2stMV0tLTsKICAgIAl9CiAgICAJZm9yIChpPTA7aTw0O2krKykgaWYgKGJhdFtpXSE9MCkgcmV0dXJuIDA7CiAgICAJcmV0dXJuIDE7CiAgICB9CiAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICAgICAgYXJyYXkoc3RyaW5nKSB0YWIgPSAoe30pOwogICAgICAgICAgICBhcnJheShpbnQpIGJhdCA9ICh7MCwwLDAsMH0pOwogICAgICAgICAgICBpbnQgbixpLGo7CiAgICAgICAgICAgIHN0cmluZyBzOwogICAgICAgICAgICBzc2NhbmYoc3RkaW4tPmdldHMoKSwgIiVkIiwgbik7CiAgICAgICAgICAgIGZvciAoaT0wO2k8bjtpKyspIHsKICAgICAgICAgICAgCWZvciAoaj0wO2o8MTA7aisrKSB7CiAgICAgICAgICAgIAkJc3NjYW5mKHN0ZGluLT5nZXRzKCksICIlcyIsIHMpOwogICAgICAgICAgICAJCXRhYiA9IHRhYiArICh7c30pOwogICAgICAgICAgICAJfQogICAgICAgICAgICAJaWYgKGkhPW4tMSkgc3NjYW5mKHN0ZGluLT5nZXRzKCksICIlcyIsIHMpOwogICAgICAgICAgICAJYmF0WzBdPTQ7IGJhdFsxXT0zOyBiYXRbMl09MjsgYmF0WzNdPTE7CiAgICAgICAgICAgIAlpZiAoamVkeih0YWIsYmF0KSA9PSAxKSB3cml0ZSgiWUVTXG4iKTsgZWxzZSB3cml0ZSgiTk9cbiIpOwogICAgICAgICAgICAJdGFiID0gKHt9KTsKICAgICAgICAgICAgfQogICAgICAgcmV0dXJuIDA7CiAgICB9
-
upload with new input
-
result: Success time: 0.14s memory: 10200 kB returned value: 0
2 ****000000 0000000000 ***00***00 0000000000 00000000** 000**00000 00000000** 000*000000 00000*00*0 0*00000000 ****000000 0000000000 ***00***00 0000000000 00000000** 000**00000 00000000** 0000*00000 00000*00*0 0*00000000
YES NO
-
result: Success time: 0.14s memory: 10200 kB returned value: 10
Bad argument 1 to sscanf(). Expected string. Unknown program: sscanf(0,"%d",<Unknown 249>,<Unknown 16>) prog.pike:38: /home/fUAvXG/prog()->main()



