fork download
  1. #include<iostream>
  2. #include<set>
  3. #define ll long long
  4. using namespace std;
  5. int main()
  6. { ll iter,N,limit,T,K,i,count,indexa,indexb,flag;
  7. cin>>T;
  8. while(T--)
  9. {
  10. cin>>N;
  11. string A,B;
  12. cin>>A>>B;
  13. set<ll>ai,bi;
  14. flag=0;
  15. for(i=0;i<N;i++){
  16. if(B[i]!=A[i] && int(A[i])<int(B[i]))
  17. {
  18. flag=1;
  19. break;
  20. }
  21. }
  22. count=0;
  23. for(i=0;i<N;i++){
  24. if(A[i]!=B[i]){
  25. count++;
  26. }
  27. }
  28. ll counta=0,countb=0;
  29. for(i=0;i<N;i++){
  30. if(A[i]=='a')
  31. counta++;
  32. else if(A[i]=='b')
  33. countb++;
  34. }
  35. if(flag==1 || counta==0 || countb==0){
  36. cout<<-1<<"\n";
  37. }
  38. else if(count=0)
  39. cout<<0;
  40. else{
  41. ll gotb=0;ll gota=0;
  42. for(i=0;i<N;i++){
  43. if(A[i]=='a' && gota==0)
  44. {
  45. gota=1;ai.insert(i);
  46. }
  47.  
  48. else if(A[i]=='b' && gotb==0)
  49. {
  50. bi.insert(i);gotb=1;
  51. }
  52. }
  53. for(i=0;i<N;i++){
  54. if(B[i]!=A[i])
  55. {
  56. if(B[i]=='a')
  57. ai.insert(i);
  58. else if(B[i]=='b')
  59. bi.insert(i);
  60.  
  61. }
  62.  
  63.  
  64. }
  65. cout<<2<<"\n";
  66. cout<<ai.size()<<"\t";
  67. for(ll x:ai)
  68. cout<<x<<"\t";
  69. cout<<"\n";
  70. cout<<bi.size()<<"\t";
  71. for(ll x:bi)
  72. cout<<x<<"\t";
  73. cout<<"\n";
  74. }
  75. }
  76. return 0;
  77. }
  78.  
  79.  
  80.  
  81.  
Success #stdin #stdout 0s 4500KB
stdin
5
abcde 
aabaa
stdout
2
2 1 2 
2 0 1