,下次比賽準備被Div.1電了。
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int a[6000];
int sol(int l,int r)
{
//horizontal strokes
int ans=INT_MAX;
for(int i=l;i<=r;i++)
ans=min(ans,a);
for(int i=l;i<=r;i++)
if(a!=0)
a-=ans;
int tl=-1,tr=0;
for(int i=l;i<=r+1;i++)
{
if(i!=r+1 && a!=0)
{
if(tl==-1) tl=i;
tr=i;
}
else if(tl!=-1)
{
ans+=sol(tl,tr);
tl=-1;
}
}
return min(ans,r-l+1);
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a;
cout<<sol(0,n-1);
}
| 歡迎光臨 竹園論壇 (http://forum.tfcis.org/) | Powered by Discuz! X3.2 |