Advertisement
brospresident

tema_info_corecta

Oct 30th, 2018
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include    <iostream>
  2. #include    <fstream>
  3. #include    <cstring>
  4.  
  5. using namespace std;
  6.  
  7. ifstream f("admitere_2018.in");
  8.  
  9. int dX[8] = {-1,-1,-1,0,1,1,1,0}, dY[8] = {-1,0,1,1,1,0,-1,-1};
  10.  
  11. char s[10001], sep[] = ".?!";
  12. int l, v[10001], j, matrice[10001][10001], linie, coloana, drum, drumMax = -1;
  13. bool exista = false;
  14.  
  15. void input(){
  16.     f.get(s, 10001, EOF);
  17.     for(int i = 0; s[i]; ++i){
  18.         if(strchr(sep,s[i]) && s[i+1]!='\n'){
  19.             char aux[10001];
  20.             strcpy(aux,s+i+1);
  21.             strcpy(s+i, aux);
  22.             i--;
  23.         }
  24.     }
  25. }
  26.  
  27. void fillArray(){
  28.     for(int i = 0; i < l; ++i){
  29.         for(int j = 0; j < l; ++j) matrice[i][j] = -1;
  30.     }
  31. }
  32.  
  33. void firstRequest(){
  34.     for(int i = 0; i < strlen(s); ++i){
  35.         if(s[i] != ' '){ v[j] = 1;}
  36.         j++;
  37.     }
  38.     for(int i = 0; i < j; ++i){
  39.         if(s[i+l] == ' '){
  40.             for(int p = i; p < i+l; ++p){
  41.                 cout << s[p];
  42.                 if(s[p] == ' ') matrice[linie][coloana] = 0;
  43.                 else matrice[linie][coloana] = 1;
  44.                 coloana++;
  45.             }
  46.             i+=l;
  47.         }
  48.         else{
  49.             int k = 0;
  50.             while(v[i+l-k] != 0) k++;
  51.             for(int p = i; p < i+l-k; ++p){
  52.                 cout << s[p];
  53.                 if(s[p] == ' ') matrice[linie][coloana] = 0;
  54.                 else matrice[linie][coloana] = 1;
  55.                 coloana++;
  56.             }
  57.             i+=l-k;
  58.         }
  59.         cout << "\n";
  60.         linie++;
  61.         coloana = 0;
  62.  
  63.     }
  64.  
  65. }
  66.  
  67. void secondRequest(int i, int j){
  68.     int x, y;
  69.     for(int d = 0; d <= 7; ++d){
  70.         x = i + dX[d];
  71.         y = j + dY[d];
  72.         if(matrice[x][y] == 0){
  73.             exista = true;
  74.             drum++;
  75.             matrice[x][y] = 2;
  76.             secondRequest(x,y);
  77.         }
  78.         if(drum > drumMax) drumMax = drum;
  79.         drum = 0;
  80.     }
  81.  
  82. }
  83.  
  84. int main()
  85. {
  86.     input();
  87.     cout << s << "\n";
  88.     cout << "Introduceti lungimea: ";
  89.     cin >> l;
  90.     fillArray();
  91.     firstRequest();
  92.     int lines = strlen(s)/l+1;
  93.     for(int i = 0; i < lines; ++i){
  94.         for(int j = 0; j < l; ++j){
  95.             if(matrice[i][j] == 0){
  96.                 matrice[i][j] = 2;
  97.                 secondRequest(i, j);
  98.             }
  99.         }
  100.     }
  101.     if(exista == true) cout << "Exista!";
  102.     else cout << "Nu exista!";
  103.     cout << "\n" << "Drumul maxim este: " << drumMax;
  104.     /*for(int i = 0; i < lines; ++i){
  105.         for(int j = 0; j < l; ++j)
  106.             cout << matrice[i][j] << " ";
  107.         cout << "\n";
  108.     }*/
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement