Advertisement
Guest User

Untitled

a guest
May 21st, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. ifstream f("interesant.in");
  7. ofstream g("interesant.out");
  8.  
  9. unsigned short k,n,lmax,nr;
  10. char s[205][5001],Max[5001];
  11. bool Interesant[205];
  12. void Citire()
  13. {
  14.     f>>k>>n;
  15.     for(int i=1; i<=n; i++)
  16.     {
  17.         f.get();
  18.         f.get(s[i],5001);
  19.     }
  20. }
  21.  
  22. int Verificare(char a[5001], char b[5001])
  23. {
  24.     long l1=strlen(a),l2=strlen(b);
  25.     if(l1<l2)
  26.         return 0;
  27.     int j=0;
  28.     for(int i=0;i<l1 && j<l2;i++)
  29.         if(a[i]==b[j])
  30.             j++;
  31.     if(j==l2)return 1;
  32.     return 0;
  33. }
  34.  
  35. void Rezolvare()
  36. {
  37.     if(k==1)
  38.     {
  39.         strcpy(Max,s[1]);
  40.         for(int i=2; i<=n; i++)
  41.         {
  42.             long l=strlen(s[i]);
  43.             if(lmax<l)
  44.             {
  45.                 strcpy(Max,s[i]);
  46.                 lmax=l;
  47.             }
  48.             else if(lmax==l && strcmp(s[i],Max)<0)
  49.                 strcpy(Max,s[i]);
  50.         }
  51.         g<<Max;
  52.     }
  53.     else
  54.     {
  55.         for(int i=1; i<=n; i++)
  56.             for(int j=1; j<=n; j++)
  57.                 if(j!=i && Verificare(s[j],s[i]))
  58.                 {
  59.                     nr++;
  60.                     Interesant[i]=1;
  61.                     break;
  62.                 }
  63.         g<<n-nr<<endl;
  64.         for(int i=1; i<=n; i++)
  65.             if(!Interesant[i])
  66.                 g<<s[i]<<endl;
  67.     }
  68. }
  69. int main()
  70. {
  71.     Citire();
  72.     Rezolvare();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement