fork download
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<vector>
  4. #include<string>
  5. using namespace std;
  6. int main() {
  7. int n;
  8. cin>>n;
  9. vector<string> v;
  10. vector<string> f;
  11. vector<string> blocked,passed;
  12. string s;
  13. cin.ignore();
  14. int index,pos;
  15. int k;
  16. vector<string>::iterator low;
  17. while(n--) {
  18. getline(cin,s);
  19. v.push_back(s);
  20. }
  21. sort(v.begin(),v.end());
  22. int start=0;
  23. for(int i=0;i<v.size();i++) {
  24. if(v[i][0]=='-') {
  25. start=i;
  26. break;
  27. }
  28. }
  29. for(int i=start;i<v.size();i++) {
  30. string s=v[i].substr(2);
  31. blocked.push_back(s);
  32. }
  33. for(int i=0;i<start;i++) {
  34. string s=v[i].substr(2);
  35. passed.push_back(s);
  36. }
  37. v.clear();
  38. int bl=blocked.size();
  39. int pl=passed.size();
  40. cout<<"bl="<<bl<<endl;
  41. cout<<"pl="<<pl<<endl;
  42. cout<<"-----------------passed-----------------------"<<endl;
  43. for(int i=0;i<pl;i++) {
  44. cout<<passed[i]<<endl;
  45.  
  46. }
  47. cout<<"-----------------blocked-----------------------"<<endl;
  48. for(int i=0;i<bl;i++) {
  49. cout<<blocked[i]<<endl;
  50.  
  51. }
  52. for(int i=0;i<bl;i++) {
  53. string x=blocked[i];
  54. cout<<"x="<<x<<endl;
  55. low=lower_bound(passed.begin(),passed.end(),x);
  56. index=low-passed.begin();
  57. string y=passed[index];
  58. cout<<"y="<<y<<endl;
  59. int xlen=x.length();
  60. int ylen=y.length();
  61. int minlen=min(xlen,ylen);
  62. cout<<"minlen="<<minlen<<endl;
  63. for(int i=0;i<minlen;i++) {
  64. if(x[i]!=y[i]) {
  65. pos=i;
  66. break;
  67. }}
  68. string h=x.substr(0,pos+1);
  69. cout<<"h="<<h<<endl;
  70. f.push_back(h);
  71. }
  72. int d=f.size();
  73. cout<<"d="<<d<<endl;
  74. for(int i=0;i<f.size();i++) {
  75. cout<<f[i]<<endl;
  76. }
  77.  
  78. }
Runtime error #stdin #stdout #stderr 0s 16080KB
stdin
4
- codeforces
+ codechef
- youtube
+ google
stdout
bl=2
pl=2
-----------------passed-----------------------
codechef
google
-----------------blocked-----------------------
codeforces
youtube
x=codeforces
y=google
minlen=6
h=c
x=youtube
stderr
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid