Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4. int n,t,k,i,j,s,d,p,nr,m,v[1005],u[1005],poz[1005],afis[1005],Min=2000005;
  5. int main()
  6. {
  7.     ifstream f("kminsum.in");
  8.     ofstream g("kminsum.out");
  9.  
  10.     f>>n>>t>>k;
  11.     for(i=1;i<=n;i++)
  12.     f>>v[i];
  13.     for(i=1;i<=t;i++)
  14.     f>>u[i];
  15.  
  16.     s=-2000000; d=2000000;
  17.     while(s<=d)
  18.     {
  19.         nr=0; p=t;
  20.         m=(s+d)/2;
  21.         for(i=1;i<=n;i++)
  22.         {
  23.             while(v[i]+u[p]>m)
  24.             p--;
  25.             nr+=p;
  26.             poz[i]=p;
  27.         }
  28.         if(nr<k)
  29.         s=m+1;
  30.         else
  31.         {
  32.             d=m-1;
  33.             if(m<Min)
  34.             {
  35.                 Min=m;
  36.                 for(i=1;i<=n;i++)
  37.                 afis[i]=poz[i];
  38.             }
  39.         }
  40.     }
  41. nr=0;
  42.     for(i=1;i<=n && nr<k;i++)
  43.     for(j=1;j<=afis[i] && nr<k;j++)
  44.     {
  45.       g<<v[i]<<' '<<u[j]<<'\n';
  46.       nr++;
  47.     }
  48.  
  49.  
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement