General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
75732591 Practice:
Nikh1l
1330B - 40 GNU C++17 Wrong answer on test 2 31 ms 148 KB 2020-04-07 13:16:34 2020-04-07 13:16:34
 
 
→ Source


#include<bits/stdc++.h>
#define rep(i,n) for(int i = 0; i < (n); ++i)
#define drep(i,n) for(int i=n-1 ; i > =0; i--)
#define all(a) a.begin(),a.end()
#define pb push_back
using namespace std;
typedef long long int ll;
void solve(){

		int q,mx=0;
		cin>>q;
		std::vector<int> v(q),v1(q+1,0);
		rep(i,q)cin>>v[i],v1[v[i]]++,mx=max(mx,v[i]);
		bool ok=true,ok1=true;
		for(int i=1;i<=q-mx;i++){
			if(v1[i]!=2){ok=false;break;}
		}
		for(int i=q-mx+1;i<=mx;i++)
		{
			if(v1[i]!=1){ok1=false;break;}
		}

		if(ok1==false||ok==false)
			cout<<"0\n";
		else
		{
		int count=0;
		set<int> s;
		bool ok=false,ko=false;
		rep(i,mx)
		s.insert(v[i]);
		
		if(s.size()==mx)count++,ok=true;

		s.clear();
		for(int i=q-1;i>=q-mx;i--)
		s.insert(v[i]);

		if(s.size()==mx)count++,ko=true;
			

		if(count!=0){
		cout<<count<<"\n";
		if(ok==true)
		 cout<<mx<<" "<<q-mx<<"\n";
		if(ko==true)
		 cout<<q-mx<<" "<<mx<<"\n";
	}

		else
			cout<<"0"<<"\n";
		}

		






}
int main(){
	
	//#ifndef ONLINE_JUDGE
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	//#endif
	ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.precision(10);
    cout << fixed;

	int _;
	cin>>_;
	while(_--)solve();
}

// #include<bits/stdc++.h>
// #define rep(i,n) for(int i = 0; i < (n); ++i)
// #define drep(i,n) for(int i =n-1 ; i > = 0; --i)
// #define all(a) a.begin(),a.end()
// #define pb push_back
// using namespace std;
// typedef long long int ll;
// void solve(){

// 	int q,mx=0,sumo=0;cin>>q;
// 	set<int> s;
// 	std::vector<int> v(q);
// 	rep(i,q)cin>>v[i],mx=max(mx,v[i]),s.insert(v[i]),sumo+=v[i];
// 	int sum= ((mx*(mx+1))/2)+(((q-mx)*(q-mx+1))/2);
// 	if(mx>=q||mx<=q/2||sumo!=sum||s.size()!=mx)cout<<"0"<<"\n";
// 	else
// 	{
// 		int count=0;
// 		set<int> s;
// 		bool ok=false,ko=false;
// 		rep(i,mx)
// 		s.insert(v[i]);
		
// 		if(s.size()==mx)count++,ok=true;

// 		s.clear();
// 		for(int i=q-1;i>=q-mx;i--)
// 		s.insert(v[i]);

// 		if(s.size()==mx)count++,ko=true;
			

// 		if(count!=0){
// 		cout<<count<<"\n";
// 		if(ok==true)
// 		 cout<<mx<<" "<<q-mx<<"\n";
// 		if(ko==true)
// 		 cout<<q-mx<<" "<<mx<<"\n";
// 	}

// 		else
// 			cout<<"0"<<"\n";
// 	}




// }
// int main(){
	
// 	//#ifndef ONLINE_JUDGE
// 	//freopen("input.txt","r",stdin);
// 	//freopen("output.txt","w",stdout);
// 	//#endif
// 	ios::sync_with_stdio(false);
//     cin.tie(nullptr);
//     cout.precision(10);
//     cout << fixed;

// 	int _;
// 	cin>>_;
// 	while(_--)solve();
// }
 
 
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details