# 題目: UVa 11078 - Open Credit System
# 題目說明
給 N
個學生的分數,學生的排序為較年長至較年輕,求較年長的學生最多比較年輕的學生多幾分
INPUT:
輸入一個整數 T
,代表測資數
每筆測資先輸入一個整數 N
,代表學生的數量
接下來有 N
個整數,代表學生的成績 (排愈前面代表學生愈年長)
OUTPUT:
輸出較年長的學生最多比較年輕的學生多幾分
# 解題方法
由較年長至較年輕遍歷學生的成績,使用一個變數 Max
紀錄目前最高分,再依序比出差最多的值
# 參考程式碼
#include <iostream> | |
#include <vector> | |
#include <climits> | |
using namespace std; | |
static auto fast_io = [] | |
{ | |
ios::sync_with_stdio(false); | |
cout.tie(nullptr); | |
cin.tie(nullptr); | |
return 0; | |
}(); | |
int main() | |
{ | |
int T, N, a; | |
cin >> T; | |
while (T--) | |
{ | |
vector<int> V; | |
int Max = INT_MIN; | |
cin >> N; | |
while (N--) cin >> a, V.push_back(a); | |
int num = V[0]; | |
for (int i = 1; i < V.size(); ++i) | |
{ | |
Max = max(Max, num - V[i]); | |
num = max(num, V[i]); | |
} | |
cout << Max << "\n"; | |
} | |
} |