Advertisement
Ankit_132

E

Mar 11th, 2024
883
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll     long long
  6. #define _test   int _TEST; cin>>_TEST; while(_TEST--)
  7. #define ff     first
  8. #define ss     second
  9. #define pb     push_back
  10.  
  11. int main()
  12. {
  13.     _test
  14.     {
  15.         int n, m, k, d;
  16.         cin>>n>>m>>k>>d;
  17.  
  18.         vector<vector<int>> a(n, vector<int> (m));
  19.  
  20.         for(int i=0; i<n; i++)
  21.         {
  22.             for(int j=0; j<m; j++)
  23.                 cin>>a[i][j];
  24.         }
  25.  
  26.         multiset<ll int> mst;
  27.         vector<ll int> val(m);
  28.         vector<ll int> vals(n);
  29.  
  30.         for(int i=0; i<n; i++)
  31.         {
  32.             fill(val.begin(), val.end(), 0);
  33.             mst.clear();
  34.  
  35.             mst.insert(1);
  36.  
  37.             for(int j=1; j<m; j++)
  38.             {
  39.                 val[j] = *mst.begin() + a[i][j] + 1;
  40.                 mst.insert(val[j]);
  41.                 if(j-d > 1)        mst.erase(mst.find(val[j-d-1]));
  42.                 if(j-d == 1)       mst.erase(mst.find(1));
  43.             }
  44.  
  45.             vals[i] = val.back();
  46.         }
  47.  
  48.         for(int i=1; i<n; i++)
  49.             vals[i] += vals[i-1];
  50.  
  51.         ll int ans = 1e18;
  52.  
  53.         for(int i=k-1; i<n; i++)
  54.         {
  55.             ll int l = 0;
  56.  
  57.             if(i-k>=0)      l = vals[i-k];
  58.  
  59.             ans = min(ans, vals[i] - l);
  60.         }
  61.  
  62.         cout<<ans<<"\n";
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement