Advertisement
Riz1Ahmed

Chef and Minimum Colouring TLE

Nov 10th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int>v[100005];
  4. int ans,m;
  5. void solve(int p,int mn,int mx){
  6.     if (mx-mn>=ans) return;
  7.     if (p==m){
  8.         ans=min(ans,mx-mn);
  9.         return;
  10.     }
  11.     for (int i=0; i<v[p].size(); i++){
  12.         if (v[p][i]<mn) solve(p+1,v[p][i],mx);
  13.         else if (v[p][i]>mx) solve(p+1,mn,v[p][i]);
  14.         else solve(p+1,mn,mx);
  15.     }
  16. }
  17. int main(){
  18.     ios_base::sync_with_stdio(0);
  19.     cin.tie(0),cout.tie(0);
  20.     int t,n,i,x;
  21.     cin>>t;
  22.     while(t--){
  23.         cin>>n>>m;
  24.         for (i=0; i<m; i++)v[i].clear();
  25.         for (i=0; i<n; i++){
  26.             cin>>x;
  27.             v[i%m].push_back(x);
  28.         }
  29.         ans=1e9;
  30.         for (i=0; i<v[0].size(); i++)
  31.             solve(1,v[0][i],v[0][i]);
  32.         cout<<ans<<endl;
  33.     }
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement