Daniel's lunch
Code:
//// // It seems that the Code has a small bug, failed to AC ////////////////////////////////////// ///////////////////
#include <iostream>#include <windows.h>using namespace std;SYSTEMTIME sys;GetLocalTime(&sys);cout<<"time1\t"<<sys.wMilliseconds<<endl;int main(){int t,n;cin>>t;while(t--){cin>>n;int *niu = new int[n];memset(niu,0,n);int min,k;cin>>niu[0];min = niu[0];k = 0;for(int i=1;i<n;i++){cin>>niu[i];if(niu[i]<min){min = niu[i];k = i;}}cout<<"K "<<k<<endl;int *fan=new int[n];memset(fan,0,n);fan[k]=1;int sum=fan[k];int minFan=fan[k];cout<<"fan["<<k<<"]\t"<<fan[k]<<endl;for(int i=k;i>0;i--){if(niu[i-1]>niu[i])fan[i-1]=fan[i]+1;else fan[i-1]=fan[i]-1;cout<<"fan["<<i-1<<"]\t"<<fan[i-1]<<endl;sum += fan[i-1];if(fan[i-1]<minFan)minFan = fan[i-1];}cout<<"minFan\t"<<minFan<<endl;cout<<"sum 1\t"<<sum<<endl;for(int j=k;j<n-1;j++){if(niu[j+1]>niu[j])fan[j+1]=fan[j]+1;else fan[j+1]=fan[j]-1;sum += fan[j+1];cout<<"fan["<<j+1<<"]\t"<<fan[j+1]<<endl;if(fan[j+1]<minFan)minFan = fan[j+1];}cout<<"sum 2\t"<<sum<<endl;if(minFan>0)cout<<sum<<endl;else cout<<(sum+n*(1-minFan))<<endl;GetLocalTime(&sys);cout<<"time2\t"<<sys.wMilliseconds<<endl;}system("pause");return 0;}