Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct sorok{
- int x;
- int y;
- char irany;
- char szo[51];
- }ELEM;
- int rendez(const void *a, const void *b)
- {
- ELEM *x = (ELEM*)a;
- ELEM *y = (ELEM*)b;
- if(x->x < y->x ) return -1;
- if(x->x > y->x ) return 1;
- if(x->y < y->y) return -1;
- if(x->y > y->y) return 1;
- if(x->irany < y->irany) return 1;
- if(x->irany > y->irany) return -1;
- return 0;
- }
- int main()
- {
- int N,M,i,j;
- char sor[50],*token;
- gets(sor);
- token=strtok(sor," ");
- N=atoi(token);
- token=strtok(NULL," ");
- M=atoi(token);
- char matrix[N][M];
- for(i=0;i<N;i++)
- {
- gets(sor);
- for(j=0;j<M;j++)
- {
- matrix[i][j]=sor[j];
- }
- }
- char buffer[50];
- int index=0,t_index=0;
- ELEM tomb[25000];
- int x_kezd=0,y_kezd=0,flag=0;
- //1 - vízszintes bejárás
- for(i=0;i<N;i++)
- for(j=0;j<M;j++)
- {
- if(matrix[i][j]!='*')
- {
- buffer[index]=matrix[i][j];
- index++;
- if(flag==0)
- {
- x_kezd=i;
- y_kezd=j;
- flag++;
- }
- }
- if(matrix[i][j]=='*' || j==M-1)
- {
- buffer[index]='\0';
- if(strlen(buffer)>=2)
- {
- tomb[t_index].irany='V';
- tomb[t_index].x=x_kezd+1;
- tomb[t_index].y=y_kezd+1;
- strcpy(tomb[t_index].szo,buffer);
- t_index++;
- }
- index=0;
- flag=0;
- }
- }
- // 2 - függőlegesek
- for(j=0;j<M;j++)
- for(i=0;i<N;i++)
- {
- if(matrix[i][j]!='*')
- {
- buffer[index]=matrix[i][j];
- index++;
- if(flag==0)
- {
- x_kezd=i;
- y_kezd=j;
- flag=1;
- }
- }
- if(matrix[i][j]=='*' || i==N-1)
- {
- buffer[index]='\0';
- if(strlen(buffer)>=2)
- {
- tomb[t_index].irany='F';
- tomb[t_index].x=x_kezd+1;
- tomb[t_index].y=y_kezd+1;
- strcpy(tomb[t_index].szo,buffer);
- t_index++;
- }
- index=0;
- flag=0;
- }
- }
- qsort(tomb,t_index,sizeof(ELEM),rendez);
- for(i=0;i<t_index;i++)
- printf("%d;%d;%c;%s\n",tomb[i].x,tomb[i].y,tomb[i].irany,tomb[i].szo);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement