【題解】ZeroJudge e664: 108 p2. 空氣盒子

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=e664

#include <iostream>
using namespace std;

int d, a[35];

int main() {
    int idx = 1;
    while (cin >> a[idx]){
        idx++;
    }
    d = idx-1;
    bool flag = false;
    for (int i = 2; i < d; i++){
        if (a[i-1] < a[i]){
            int r = i;
            while (a[i] == a[r+1]) r++;
            if (r+1 <= d && a[i] > a[r+1]){
                flag = true;
                cout << i;
                if (r > i) cout << " " << r;
                cout << " " << a[i] << "\n";
            }
            i = r;
        }
    }
    if (!flag) cout << "0 0\n";
}

Python code (credit: Amy Chou)

M = list(map(int, input().split()))
flag = True
for i in range(1, len(M)-1):
    if M[i] > M[i-1]:
        for r in range(i+1, len(M)-1):
            if M[r] == M[i]:
                continue
            else:
                break
        if M[r] < M[i]:
            if r == i+1:
                print(f"{i+1} {M[i]}")
                flag = False
                
            else:
                print(f"{i+1} {r} {M[i]}")
                flag = False
        i = r+1
        
if flag:
    print(f"0 0")
分享本文 Share with friends