jeff69

FaceBook hacker cup

Jan 15th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int MX=1e5+5;
  4. typedef long long ll;
  5. int n,m;
  6. ll adj[333][333];
  7. ll dp[333][333];
  8. ll solve(int pies,int id)
  9. {
  10.     if(id==n)return 0;
  11.     // cout<<pies<<' '<<id<<endl;
  12.     int sum=0;
  13.     ll ans=dp[pies][id];
  14.     if(ans!=-1)return ans;
  15.     ans=1e10;
  16.     for(int i=0; i<min(n-id-pies,m); i++)
  17.     {
  18.         sum+=adj[id][i];
  19.         ans=min(ans,sum+(i+1)*(i+1)+solve(pies+i,id+1));
  20.     }
  21.     if(pies)ans=min(ans,solve(pies-1,id+1));
  22.     return dp[pies][id]=ans;
  23. }
  24. int main()
  25. {
  26.     //freopen("pie_progress.txt","r",stdin);
  27.    // freopen("outhacker.txt","r",stdin);
  28.     int g=0,t;
  29.  
  30.     scanf("%d",&t);
  31.     //cout<<t<<endl;
  32.     while(t--)
  33.     {
  34.         memset(dp,-1,sizeof dp);
  35.         scanf("%d%d",&n,&m);
  36.         //cout<<n<<' '<<m<<endl;
  37.         for(int i=0; i<n; i++)
  38.         {
  39.             for(int j=0; j<m; j++)
  40.             {
  41.                 ll x;
  42.                 scanf("%I64d",&x);
  43.                 adj[i][j]=x;
  44.                // cout<<x<<' ';
  45.             }
  46.             sort(adj[i],adj[i]+m);
  47.         }
  48.         //cout<<endl;
  49.         printf("Case #%d: %lld\n",++g,solve(0,0));
  50.  
  51.     }
  52.  
  53.     return 0;
  54. }
Add Comment
Please, Sign In to add comment