fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define dd double
  5. #define ld long double
  6. #define ull unsigned long long
  7. #define yes cout << "YES\n"
  8. #define no cout << "NO\n"
  9. #define el "\n"
  10. #define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  11. #define fix(x) cout << fixed << setprecision(x)
  12. #define all(v) v.begin(),v.end()
  13. #define dpp(v,val) memset(v,val,sizeof(v))
  14. #define mod 1e9+7
  15. #define oo 1e18
  16. const int N = 1e5 + 5;
  17. int n,k;
  18. vector<int>v;
  19. int dp[10001][10001];
  20. int solve(int i,int j)
  21. {
  22. if(i>=j) return 0;
  23. int t1=oo,t2=oo,t3=oo;
  24. int &ret =dp[i][j];
  25. if(ret!=-1) return ret;
  26. if(v[i]==v[j])
  27. t1=solve(i+1,j-1);
  28. else
  29. {
  30. t2=solve(i+1,j)+1;
  31. t3=solve(i,j-1)+1;
  32. }
  33. return ret=min({t1,t2,t3});
  34. }
  35. void HereWeGoAgain()
  36. {
  37. cin>>n>>k; v.resize(n);
  38. for(int i=0;i<n;i++) cin>>v[i];
  39. dpp(dp,-1);
  40. int ans=solve(0,n-1);
  41. if(ans==0) cout<<"Too easy\n";
  42. else if(ans>k) cout<<"Too difficult\n";
  43. else cout<<ans<<el;
  44. }
  45. int32_t main()
  46. {
  47. Arwa
  48. int t=1;
  49. cin>>t;
  50. for(int i=1;i<=t;i++)
  51. {
  52. cout<<"Case "<<i<<": "; HereWeGoAgain();
  53. }
  54. return 0;
  55. }
  56.  
Success #stdin #stdout 0.26s 784844KB
stdin
Standard input is empty
stdout
Case 1: Too easy