這是乙個環的問題,題意也是比較明了的,找到相鄰的4個數,讓他們相加的和最大,並給出他們的起始位置。
當我們看到資料量時,發現n最大才大到20,所以我們就可以用暴力搜尋來解決。
ps.當資料量很大時,需要用動態規劃,但這裡不用。
讀入n和a陣列,再用巢狀的for迴圈,
i迴圈n個數開頭注:
記得把s
清零。
j迴圈i到i加上3的那4個數
判斷:如果j現在小於等於n,就把a[j]的數加到s裡去
如果j大於n,那s要加的就是a[j-n]了
j迴圈結束後,判斷現在的s有沒有大於現在的最大值max
如果大於,不但要把s的值存起來,現在的起始位置i也得賦值出來。
最後,要先輸出最大值,再輸出起始位置。
vara:array[1..10000]of longint;
n,i,j,s,max,k:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
begin
s:=0;
for j:=i to i+3 do
if j<=n then inc(s,a[j])
else inc(s,a[j-n]);
if s>max then begin k:=i;max:=s;end;
end;
writeln(max);
writeln(k);
end.
異或的路徑 n個數字兩兩異或相加之和
給一棵 n 個點的樹,1 號節點為根,邊有邊權,令 f u,v 表示 u 節點到 v 節點,路徑上邊權異或值。求 第一行乙個整數 n n 100000 接下來 n 1 行,第 i 行輸入兩個整數,p i p i i v i 100000 v i 1 分別表示 i 1號節點的父親,以及 i 1 與 p...
兩數之和 兩樹相加
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9...
T SQL字串相加之後被截斷的那點事
原文 t sql字串相加之後被截斷的那點事 本文出處 字串自身相加,雖然賦值給了varchar max 型別的變數,在某些特殊情況下仍然會被 截斷 這到底是varchar max 長度的問題還是操作的問題?1,兩個不超過8000長度的字串自身相加,其結果長度超過8000之後會被截斷 不多說,直接上例...