e533 - 11942 - Lumberjack Sequencing
題目描述
題目要求判斷給定的 10 個整數序列是否為遞增或遞減序列。如果序列是遞增或遞減的,則輸出 "Ordered",否則輸出 "Unordered"。
解題思路
程式碼首先讀取測試案例的數量。對於每個測試案例,它讀取 10 個整數。程式碼會檢查序列是否為遞增或遞減。它首先讀取前兩個數字,並確定序列應該是遞增還是遞減。然後,它迭代剩餘的數字,並檢查它們是否符合預期的順序。如果找到任何不符合順序的數字,則將 ans 標記為 true。最後,如果 ans 為 false,則輸出 "Ordered",否則輸出 "Unordered"。
複雜度分析
- 時間複雜度: O(n),其中 n 是輸入序列的長度 (在本例中為 10)。程式碼迭代序列一次。
- 空間複雜度: O(1)。程式碼使用固定數量的變數,與輸入大小無關。
程式碼
#include <iostream>
using namespace std;
int main(){
int c,a0,a1;
cin >> c;
cout << "Lumberjacks:\n";
while(c--){
int t=8;
bool ans=0,way=0;
cin >> a0 >> a1;
if(a1>a0){
way=1;
a0=a1;
}
while(t--){
cin >> a1;
if(way){
if(a1<a0)ans=1;
}
else
if(a1>a0)ans=1;
a0=a1;
}
if(!ans)
cout << "Ordered\n";
else
cout << "Unordered\n";
}
}