Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.     char zavs[100];
  6.         int i = 0;
  7.         char bul =0;
  8.         int a = 0;
  9.         int od=-1,to=-1;
  10.         int max=-1;
  11.         int odwh=-1,towh=-1;
  12.        
  13.        
  14.         printf("Zadej rad zavorek: \n");
  15.         while(1){
  16.             scanf("%c",&zavs[i]);
  17.            
  18.             if(zavs[i]==')'){
  19.                 if(bul!=0){
  20.                     a--;
  21.                 }
  22.             }else if(zavs[i]=='('){
  23.                 a++;
  24.                
  25.                 if(bul==0){
  26.                     odwh=i;
  27.                 }
  28.                 bul=1;
  29.             }else if(zavs[i]=='\n'){
  30.                 break;
  31.             }else{
  32.                 printf("Nepravidelny vstup");
  33.                 return 0;
  34.             }
  35.             if(a<0){
  36.                
  37.                 a=0;
  38.                 bul=0;
  39.                
  40.                 odwh=-1;
  41.             }
  42.            
  43.             if(a==0){
  44.                
  45.                 if((odwh!=-1)&&(i-odwh>=max)){
  46.                     to=i;
  47.                     od=odwh;
  48.                     max=i-odwh;
  49.                 }
  50.             }
  51.             i++;
  52.         }
  53.         odwh=-1;
  54.         bul=0;
  55.         a=0;
  56.         int j = i;
  57.         while(1){
  58.             if(i==0){
  59.                 break;
  60.             }
  61.            
  62.             if(zavs[i]=='('){
  63.                 if(bul!=0){
  64.                     a--;   
  65.                 }
  66.             }else if(zavs[i]==')'){
  67.                 a++;
  68.                
  69.                 if(bul==0){
  70.                     odwh=i;
  71.                 }
  72.                 bul=1;
  73.             }
  74.             if(a<0){
  75.                
  76.                 a=0;
  77.                 bul=0;
  78.                
  79.                 odwh=-1;
  80.             }
  81.            
  82.            
  83.             if(a==0){
  84.                 if((odwh!=-1)&&(odwh-i>=max)){
  85.                     to=odwh;
  86.                     od=i;
  87.                     max=odwh-i;
  88.                 }
  89.             }
  90.            
  91.             i--;
  92.         }
  93.        
  94.         if(1){
  95.             printf("Reseni: \n");
  96.             for(int z =0;z<j;z++){
  97.                 if (z<od){
  98.                     printf("*");
  99.                 }else if (z>to){
  100.                     printf("*");
  101.                 }else{
  102.                     printf("%c",zavs[z]);
  103.                 }
  104.             }
  105.             printf("(%d) \n",max+1);
  106.         }
  107.         return 0;
  108.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement