Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int main()
- {
- int n;
- cin>> n;
- int dlugosc,dlugosc2,dlugosc3;
- int tab[10001];
- int tab2[10001];
- int tab3[10001];
- for(int i=0; i<n; i++)
- {
- cin>>dlugosc;
- for(int j=1; j<=dlugosc; j++)
- cin>>tab[j];
- tab[0]=0;
- cin>>dlugosc2;
- for(int x=1; x<=dlugosc2; x++)
- cin>>tab2[x];
- tab2[0]=0;
- tab3[0]=0;
- int pomoc;
- int wartownik=0;
- int roznica;
- if(dlugosc<dlugosc2) // zamiana tablic
- {
- for (int i=1; i<=dlugosc2; i++)
- tab3[i]=tab2[i];
- dlugosc3=dlugosc2;
- for (int i=1; i<=dlugosc; i++)
- tab2[i]=tab[i];
- dlugosc2=dlugosc;
- for (int i=1; i<=dlugosc3; i++)
- tab[i]=tab3[i];
- dlugosc=dlugosc3;
- }
- pomoc=dlugosc;
- int bufor=0;
- roznica=dlugosc-dlugosc2;
- if(roznica==0) // dla liczb o tej samej dlugosci z pierwsza cyfra 1
- {
- if(tab[1]==1 && tab[1]==1)
- {
- tab[0]=1;
- tab[1]=0;
- tab2[1]=0;
- }
- }
- for(int i=1; i<=roznica; i++) // dla liczb z poczatkiem z samych 1 az do cyfry gdzie druga liczba ma pierwsza cyfre 1
- {
- if(tab[i]!=1)
- break;
- if(i==roznica)
- wartownik=1;
- }
- if(tab[dlugosc]==1 && tab2[dlugosc2]==1) //dla liczb konczacych sie na 1
- {
- tab[dlugosc]=0;
- tab2[dlugosc2]=0;
- bufor=1;
- }
- if(wartownik==1) //zmiana poczatku liczby
- {
- for(int i=1; i<=roznica; i++)
- tab[i]=0;
- tab[0]=1;
- tab2[1]=0;
- for(dlugosc2; dlugosc2>=1; dlugosc2--) // obliczenia
- {
- if(tab[dlugosc]==0 && tab2[dlugosc2]==0)
- {
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=1;
- bufor=0;
- }
- continue;
- }
- if(tab[dlugosc]==0 && tab2[dlugosc2]==1)
- {
- tab[dlugosc]=1;
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=0;
- bufor=1;
- }
- continue;
- }
- if(tab[dlugosc]==1 && tab2[dlugosc2]==0)
- {
- tab[dlugosc]=1;
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=0;
- bufor=1;
- }
- continue;
- }
- if(tab[dlugosc]==1 && tab2[dlugosc2]==1)
- {
- tab[dlugosc]=0;
- if(bufor==1)
- {
- tab[dlugosc]=1;
- bufor=1;
- }
- bufor=1;
- dlugosc--;
- }
- }
- }
- else
- {
- for(dlugosc2; dlugosc2>=1; dlugosc2--) //obliczenia gdy nei bylo zmiany poczatku liczby
- {
- if(tab[dlugosc]==0 && tab2[dlugosc2]==0)
- {
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=1;
- bufor=0;
- }
- continue;
- }
- if(tab[dlugosc]==0 && tab2[dlugosc2]==1)
- {
- tab[dlugosc]=1;
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=0;
- bufor=1;
- }
- continue;
- }
- if(tab[dlugosc]==1 && tab2[dlugosc2]==0)
- {
- tab[dlugosc]=1;
- dlugosc--;
- if(bufor==1)
- {
- tab[dlugosc]=0;
- bufor=1;
- }
- continue;
- }
- if(tab[dlugosc]==1 && tab2[dlugosc2]==1)
- {
- tab[dlugosc]=0;
- tab[dlugosc-1]=1;
- if(bufor==1)
- {
- tab[dlugosc]=1;
- bufor=1;
- }
- dlugosc--;
- }
- }
- }
- if(tab[0]==1) // wypisz
- {
- for(int y=0; y<=pomoc; y++)
- cout<<tab[y];
- }
- else
- {
- for(int y=1; y<=pomoc; y++)
- cout<<tab[y];
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement