/*
*
********************************************************************************************
* AUTHOR : Vijju123 *
* Language: C++14 *
* Purpose: - *
* IDE used: Codechef IDE. *
********************************************************************************************
*
Comments will be included in practice problems if it helps ^^
*/
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
#ifdef JUDGE
freopen("input.txt", "rt", stdin);
freopen("output.txt", "wt", stdout);
#endif
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin>>t;
printf("%dt\n",t);
while(t--)
{
int n;
printf("\n");
cin>>n;
printf("%dn\n",n);
int a[n],b[n],ans=0;
int i,j;
//Input
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
cin>>b[i];
}
printf("Input -");
printf("\na : ");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\nb : ");
for(i=0;i<n;i++)
{
printf("%d ",b[i]);
}
printf("\n");
deque<int> q;
deque<int> :: iterator it;
int possible=1;
//Check for case of -1 first.
for(i=0;i<n;i++)
{
if(a[i]<b[i])
{
possible=0;
printf("\nImpossible\n%di %dai %dbi\n",i,a[i],b[i]);
break;
}
}
if(possible==0)printf("ans : %d\n",-1);
else
{
printf("\n");
for(i=0;i<n;i++)
{
if(q.empty())
{
printf("%di %dai %dbi qEmpty\n",i,a[i],b[i]);
}
else
{
printf("%di %dqFront %dai %dbi %dqBack\n",i,q.front(),a[i],b[i],q.back());
}
while(!q.empty() and q.back()<b[i])
{
printf("Queue popBack %d\n",q.back());
q.pop_back();
}
while(!q.empty() and q.front()>a[i])
{
printf("Queue popFront %d\n",q.front());
q.pop_front();
}
printf("Queue After pop/push : ");
for(it = q.begin();it!=q.end();++it)
{
printf("%d ",*it);
}
printf("\n");
if( a[i]!=b[i] and (q.empty() or b[i]!=q.back()) )
{
ans++;
printf("%d ans++\n",ans);
printf("Queue pushBack %d\n",b[i]);
q.push_back(b[i]);
}
printf("Queue After complete of %di : ",i);
for(it = q.begin();it!=q.end();++it)
{
printf("%d ",*it);
}
printf("\n\n");
}
printf("ans : %d\n",ans);
}
}
return 0;
}
LyoKICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIEFVVEhPUiA6IFZpamp1MTIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiBMYW5ndWFnZTogQysrMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICogUHVycG9zZTogLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqIElERSB1c2VkOiBDb2RlY2hlZiBJREUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKIENvbW1lbnRzIHdpbGwgYmUgaW5jbHVkZWQgaW4gcHJhY3RpY2UgcHJvYmxlbXMgaWYgaXQgaGVscHMgXl4KICovCgoKCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJI2lmZGVmIEpVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAicnQiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInd0Iiwgc3Rkb3V0KTsKICAgICNlbmRpZgoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoTlVMTCk7Cgljb3V0LnRpZShOVUxMKTsKCWludCB0OwoJY2luPj50OwoJcHJpbnRmKCIlZHRcbiIsdCk7Cgl3aGlsZSh0LS0pCgl7CgkgICAgaW50IG47CgkgICAgcHJpbnRmKCJcbiIpOwoJICAgIGNpbj4+bjsKCSAgICBwcmludGYoIiVkblxuIixuKTsKCSAgICBpbnQgYVtuXSxiW25dLGFucz0wOwoJICAgIGludCBpLGo7CgkgICAgLy9JbnB1dAoJICAgIGZvcihpPTA7aTxuO2krKykKCSAgICB7CgkgICAgICAgIGNpbj4+YVtpXTsKICAgICAJfQoJICAgIGZvcihpPTA7aTxuO2krKykKCSAgICB7CgkgICAgICAgIGNpbj4+YltpXTsKCSAgICB9CgkgICAgcHJpbnRmKCJJbnB1dCAtIik7CgkgICAgcHJpbnRmKCJcbmEgOiAiKTsKICAgICAgICBmb3IoaT0wO2k8bjtpKyspCgkgICAgewoJICAgICAgICBwcmludGYoIiVkICIsYVtpXSk7CgkgICAgfQogICAgICAgIHByaW50ZigiXG5iIDogIik7CgkgICAgZm9yKGk9MDtpPG47aSsrKQoJICAgIHsKCSAgICAgICAgcHJpbnRmKCIlZCAiLGJbaV0pOwoJICAgIH0KCSAgICBwcmludGYoIlxuIik7CiAgICAgICAgZGVxdWU8aW50PiBxOwogICAgICAgIGRlcXVlPGludD4gOjogaXRlcmF0b3IgaXQ7CgkgICAgaW50IHBvc3NpYmxlPTE7CgkgICAgLy9DaGVjayBmb3IgY2FzZSBvZiAtMSBmaXJzdC4KCSAgICBmb3IoaT0wO2k8bjtpKyspCgkgICAgewoJICAgICAgICBpZihhW2ldPGJbaV0pCgkgICAgICAgIHsKCSAgICAgICAgICAgIHBvc3NpYmxlPTA7CgkgICAgICAgICAgICBwcmludGYoIlxuSW1wb3NzaWJsZVxuJWRpICVkYWkgJWRiaVxuIixpLGFbaV0sYltpXSk7CgkgICAgICAgICAgICBicmVhazsKCSAgICAgICAgfQoJICAgIH0KCSAgICBpZihwb3NzaWJsZT09MClwcmludGYoImFucyA6ICVkXG4iLC0xKTsKCSAgICBlbHNlCgkgICAgewoJICAgICAgICBwcmludGYoIlxuIik7CgkgICAgICAgIGZvcihpPTA7aTxuO2krKykKCSAgICAgICAgewoJICAgICAgICAgICAgaWYocS5lbXB0eSgpKQoJICAgICAgICAgICAgewoJICAgICAgICAgICAgICAgIHByaW50ZigiJWRpICVkYWkgJWRiaSBxRW1wdHlcbiIsaSxhW2ldLGJbaV0pOwoJICAgICAgICAgICAgfQoJICAgICAgICAgICAgZWxzZQoJICAgICAgICAgICAgewoJICAgICAgICAgICAgICAgIHByaW50ZigiJWRpICVkcUZyb250ICVkYWkgJWRiaSAlZHFCYWNrXG4iLGkscS5mcm9udCgpLGFbaV0sYltpXSxxLmJhY2soKSk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICB3aGlsZSghcS5lbXB0eSgpIGFuZCBxLmJhY2soKTxiW2ldKQoJICAgICAgICAgICAgewoJICAgICAgICAgICAgICAgIHByaW50ZigiUXVldWUgcG9wQmFjayAlZFxuIixxLmJhY2soKSk7CgkgICAgICAgICAgICAgICAgcS5wb3BfYmFjaygpOwoJICAgICAgICAgICAgfQoJICAgICAgICAgICAgd2hpbGUoIXEuZW1wdHkoKSBhbmQgcS5mcm9udCgpPmFbaV0pCgkgICAgICAgICAgICB7CgkgICAgICAgICAgICAgICAgcHJpbnRmKCJRdWV1ZSBwb3BGcm9udCAlZFxuIixxLmZyb250KCkpOwoJICAgICAgICAgICAgICAgIHEucG9wX2Zyb250KCk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBwcmludGYoIlF1ZXVlIEFmdGVyIHBvcC9wdXNoIDogIik7CgkgICAgICAgICAgICBmb3IoaXQgPSBxLmJlZ2luKCk7aXQhPXEuZW5kKCk7KytpdCkKCSAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICBwcmludGYoIiVkICIsKml0KTsKCSAgICAgICAgICAgIH0KCSAgICAgICAgICAgIHByaW50ZigiXG4iKTsKCSAgICAgICAgICAgIGlmKCBhW2ldIT1iW2ldIGFuZCAocS5lbXB0eSgpIG9yIGJbaV0hPXEuYmFjaygpKSApCgkgICAgICAgICAgICB7CgkgICAgICAgICAgICAgICAgYW5zKys7CgkgICAgICAgICAgICAgICAgcHJpbnRmKCIlZCBhbnMrK1xuIixhbnMpOwoJICAgICAgICAgICAgICAgIHByaW50ZigiUXVldWUgcHVzaEJhY2sgJWRcbiIsYltpXSk7CiAgICAgICAgICAgICAgICAgICAgcS5wdXNoX2JhY2soYltpXSk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBwcmludGYoIlF1ZXVlIEFmdGVyIGNvbXBsZXRlIG9mICVkaSA6ICIsaSk7CgkgICAgICAgICAgICBmb3IoaXQgPSBxLmJlZ2luKCk7aXQhPXEuZW5kKCk7KytpdCkKCSAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICBwcmludGYoIiVkICIsKml0KTsKCSAgICAgICAgICAgIH0KCSAgICAgICAgICAgIHByaW50ZigiXG5cbiIpOwoJICAgICAgICB9CgkgICAgICAgIHByaW50ZigiYW5zIDogJWRcbiIsYW5zKTsKCSAgICB9Cgl9CgoJcmV0dXJuIDA7Cn0=