昨日のスルメ、div2の1000悔しかったからage。
#define rep(i,n) for(int i=0; i<n; i++) #define rrep(i,o,n) for(int i = o; i < n; i++) #define drep(i,n) for(int i = n; i >= 0; i--) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int minChanges(string S) { int n = S.size(), ans = 50, dp[50]; rrep(i,1,n){ rep(j,i) dp[j] = 0; rrep(j,i,n) drep(k,i-1){ if (S[j] == S[k]){ dp[k] = 1; rep(h,k) dp[k] = max(dp[k],dp[h]+1); } } ans = min(ans,max(i, n-i)-dp[i-1]); } return ans; }
コーナーケースがあるかも知れへんけど、後2分あればsubmit出来てた・・・
1000を解けてる人のソース見てもほとんどみんな長ったらしくて、さらに悔しくなった・・・
まぁ、しゃーないか。