Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cstring>
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #include <cctype>
- #include <stack>
- #include <queue>
- #include <list>
- #include <vector>
- #include <map>
- #include <set>
- #include <sstream>
- #include <stdlib.h>
- #include <cmath>
- #define LL unsigned long long
- using namespace std;
- typedef struct reg{
- int num;
- char c;
- }Tcross;
- int r,c;
- Tcross table[200][200];
- bool elegible(int i,int j){
- if((table[i][j].c)=='*') return false;
- if(i==0) return true;
- if(j-1>=0){
- if((table[i][j-1].c)=='*') return true;
- }
- if(i-1>=0){
- if((table[i-1][j].c)=='*') return true;
- }
- if(j-1<0 || i-1<0 ) return true;
- return false;
- }
- void Imprimir(){
- int k,l;
- printf("Across\n");
- /*primero procedemos a imprimir las horizontales*/
- for(int i=0;i<r;i++){
- for(int j=0;j<c;j++){
- if(table[i][j].c=='*') continue;
- else if(table[i][j].num!=0 && (j-1<0 || table[i][j-1].c=='*')){
- /*mientras no sea * ,imprimo*/
- k=i;l=j;
- if (table[k][l].num<=9)printf(" %d.",table[k][l].num);
- else if(table[k][l].num>9 && table[k][l].num<1000) printf(" %d.",table[k][l].num);
- else printf("%d.",table[k][l].num);
- while(l<c && table[k][l].c!='*' ){
- if (l+1<c && table[k][l+1].c!='*')printf("%c",table[k][l].c);
- else printf("%c\n",table[k][l].c);
- l++;
- if(c<=l) break;
- }
- }else{
- continue;
- }
- }
- }
- printf("Down\n");
- /*procedemos a imprimir las verticales*/
- for(int i=0;i<r;i++){
- for(int j=0;j<c;j++){
- if(table[i][j].c=='*') continue;
- else if(table[i][j].num!=0 && (i-1<0 || table[i-1][j].c=='*')){
- /*mientras no sea * ,imprimo*/
- k=i;l=j;
- if (table[k][l].num<=9)printf(" %d.",table[k][l].num);
- else if(table[k][l].num>9 && table[k][l].num<1000) printf(" %d.",table[k][l].num);
- else printf("%d.",table[k][l].num);
- while(k<r && table[k][l].c!='*' ){
- if (k+1<r && table[k+1][l].c!='*')printf("%c",table[k][l].c);
- else printf("%c\n",table[k][l].c);
- k++;
- if(r<=k) break;
- }
- }else{
- continue;
- }
- }
- }
- }
- int main() {
- int cont;cont=0;int cont1;
- while(scanf("%d",&r)){
- cont++;
- if(r==0) break; cont1=0;
- if(cont>=2) printf("\n");
- scanf("%d",&c);
- getchar();
- for(int i=0;i<r;i++){
- for(int j=0;j<c;j++){
- scanf("%c",&table[i][j].c);
- if(elegible(i,j)){
- cont1++;
- table[i][j].num=cont1;/*numero*/
- }else table[i][j].num=0;
- }
- getchar();
- }
- printf("puzzle #%d:\n",cont);
- Imprimir();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement