Uva 11078 Open Credit System
Root :: AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu) :: Chapter 1. Algorithm Design :: Designing Efficient Algorithms :: Examples
/*
題意:n個整數a1~an-1 找到兩個數ai aj 使ai-aj盡可能大(i<j)
直接的想法 找到每組(ai,aj)數對 max比較找到dmax
時間是n^2 超時(M=100000+10)
思路:單位時間維護最大值,該題不用輸入都結束再處理數據(時間從n降到l)
可以邊輸入邊比較維護。
輸出要求打印距離即可,當要求輸出i和j時
要記得在max函數更新最大值時候記錄i和j
*///Uva 11078 Open Credit System
//AC
1 //AC 3 #include<stdio.h> 4 #include<algorithm> 5 using namespace std; 6 const int M=100000+10; 7 int t; 8 int a[M]; 9 int main() 10 { 11 int i,j,k,n; 12 int ai,dmax; 13 scanf("%d",&t); 14 while(t--) 15 { 16 scanf("%d",&n); 17 scanf("%d%d",&a[0],&a[1]); 18 dmax=a[0]-a[1]; 19 ai=a[0]; 20 for(i=1;i<n;i++) 21 { 22 if(i<2) 23 { 24 dmax=max(dmax,ai-a[1]);//單位時間維護距離最大值dmax 25 ai=max(ai,a[1]);//不斷更新ai 使ai盡可能大,為使ai-aj盡可能大 26 } 27 else 28 { 29 scanf("%d",&a[i]); 30 dmax=max(dmax,ai-a[i]); 31 ai=max(ai,a[i]); 32 } 33 } 34 printf("%d\n",dmax); 35 } 36 return 0; 37 } 38 /* 39 5 40 6 41 1 2 3 4 78 6 42 */ 43 44
posted on 2013-03-20 16:11 ACM_Someone like you 閱讀(250) 評論(0) 收藏 舉報
浙公網安備 33010602011771號