Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.26 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6.  
  7.  
  8. int main()
  9. {
  10.    
  11.     int n;
  12.     cin>> n;
  13.     int dlugosc,dlugosc2,dlugosc3;
  14.     int tab[10001];
  15.     int tab2[10001];
  16.     int tab3[10001];
  17.     for(int i=0; i<n; i++)
  18.     {
  19.         cin>>dlugosc;
  20.        
  21.         for(int j=1; j<=dlugosc; j++)
  22.         cin>>tab[j];
  23.         tab[0]=0;
  24.        
  25.         cin>>dlugosc2;
  26.        
  27.         for(int x=1; x<=dlugosc2; x++)
  28.         cin>>tab2[x];  
  29.         tab2[0]=0;
  30.         tab3[0]=0;
  31.         int pomoc;
  32.         int wartownik=0;
  33.         int roznica;
  34.        
  35.         if(dlugosc<dlugosc2)    // zamiana tablic
  36.         {
  37.             for (int i=1; i<=dlugosc2; i++)
  38.             tab3[i]=tab2[i];
  39.             dlugosc3=dlugosc2;
  40.             for (int i=1; i<=dlugosc; i++)
  41.             tab2[i]=tab[i];
  42.             dlugosc2=dlugosc;
  43.             for (int i=1; i<=dlugosc3; i++)
  44.             tab[i]=tab3[i];
  45.             dlugosc=dlugosc3;
  46.        }
  47.        
  48.    
  49.         pomoc=dlugosc;
  50.         int bufor=0;
  51.    
  52.         roznica=dlugosc-dlugosc2;
  53.         if(roznica==0)      // dla liczb o tej samej dlugosci z pierwsza cyfra 1
  54.         {
  55.             if(tab[1]==1 && tab[1]==1)
  56.             {
  57.                 tab[0]=1;
  58.                 tab[1]=0;
  59.                 tab2[1]=0;
  60.             }
  61.            
  62.         }
  63.         for(int i=1; i<=roznica; i++)   // dla liczb z poczatkiem z samych 1 az do cyfry gdzie druga liczba ma pierwsza cyfre 1
  64.         {
  65.             if(tab[i]!=1)
  66.             break;
  67.             if(i==roznica)         
  68.             wartownik=1;
  69.         }
  70.        
  71.         if(tab[dlugosc]==1 && tab2[dlugosc2]==1)    //dla liczb konczacych sie na 1
  72.         {
  73.             tab[dlugosc]=0;
  74.             tab2[dlugosc2]=0;
  75.             bufor=1;
  76.         }
  77.         if(wartownik==1)        //zmiana poczatku liczby
  78.         {
  79.             for(int i=1; i<=roznica; i++)
  80.             tab[i]=0;
  81.             tab[0]=1;
  82.             tab2[1]=0;
  83.        
  84.        
  85.         for(dlugosc2; dlugosc2>=1; dlugosc2--)      // obliczenia
  86.         {
  87.        
  88.            
  89.             if(tab[dlugosc]==0 && tab2[dlugosc2]==0)   
  90.             {
  91.                 dlugosc--;
  92.                 if(bufor==1)
  93.                 {
  94.                 tab[dlugosc]=1;
  95.                 bufor=0;
  96.                 }
  97.                 continue;
  98.             }
  99.                
  100.             if(tab[dlugosc]==0 && tab2[dlugosc2]==1)   
  101.             {
  102.                 tab[dlugosc]=1;
  103.                 dlugosc--;
  104.                 if(bufor==1)
  105.                 {
  106.                 tab[dlugosc]=0;
  107.                 bufor=1;
  108.                 }
  109.                 continue;
  110.             }
  111.                
  112.             if(tab[dlugosc]==1 && tab2[dlugosc2]==0)
  113.             {
  114.                 tab[dlugosc]=1;
  115.                 dlugosc--;
  116.                 if(bufor==1)
  117.                 {
  118.                 tab[dlugosc]=0;
  119.                 bufor=1;
  120.                 }
  121.                 continue;  
  122.             }
  123.                
  124.             if(tab[dlugosc]==1 && tab2[dlugosc2]==1)
  125.             {
  126.                 tab[dlugosc]=0;
  127.                 if(bufor==1)
  128.                 {
  129.                 tab[dlugosc]=1;
  130.                 bufor=1;
  131.                 }
  132.                 bufor=1;
  133.                 dlugosc--;
  134.             }
  135.            
  136.            
  137.            
  138.         }
  139.         }
  140.         else
  141.         {
  142.             for(dlugosc2; dlugosc2>=1; dlugosc2--)  //obliczenia gdy nei bylo zmiany poczatku liczby
  143.         {
  144.        
  145.            
  146.             if(tab[dlugosc]==0 && tab2[dlugosc2]==0)   
  147.             {
  148.                 dlugosc--;
  149.                 if(bufor==1)
  150.                 {
  151.                 tab[dlugosc]=1;
  152.                 bufor=0;
  153.                 }
  154.                 continue;
  155.             }
  156.                
  157.             if(tab[dlugosc]==0 && tab2[dlugosc2]==1)
  158.             {
  159.                 tab[dlugosc]=1;
  160.                 dlugosc--;
  161.                 if(bufor==1)
  162.                 {
  163.                 tab[dlugosc]=0;
  164.                 bufor=1;
  165.                 }
  166.                 continue;
  167.             }
  168.                
  169.             if(tab[dlugosc]==1 && tab2[dlugosc2]==0)
  170.             {
  171.                 tab[dlugosc]=1;
  172.                 dlugosc--;
  173.                 if(bufor==1)
  174.                 {
  175.                 tab[dlugosc]=0;
  176.                 bufor=1;
  177.                 }
  178.                 continue;  
  179.             }
  180.                
  181.             if(tab[dlugosc]==1 && tab2[dlugosc2]==1)
  182.             {
  183.                 tab[dlugosc]=0;
  184.                 tab[dlugosc-1]=1;
  185.                 if(bufor==1)
  186.                 {
  187.                 tab[dlugosc]=1;
  188.                 bufor=1;
  189.                 }
  190.                
  191.                 dlugosc--;
  192.             }
  193.            
  194.            
  195.         }
  196.        
  197.     }
  198.        
  199.        
  200.         if(tab[0]==1)       // wypisz
  201.         {
  202.             for(int y=0; y<=pomoc; y++)
  203.             cout<<tab[y];      
  204.         }
  205.        
  206.         else
  207.         {
  208.             for(int y=1; y<=pomoc; y++)
  209.             cout<<tab[y];      
  210.            
  211.         }
  212.        
  213.        
  214.     }
  215.    
  216.     return 0;
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement