# Array# Input/Output# Basic Simulation

a845 - B.奶罐小馬買東西

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算指定兩瓶飲料的總價。給定飲料的數量和每瓶飲料的價格,以及多個查詢,每個查詢包含兩個飲料的索引,程式需要輸出這兩瓶飲料的價格總和。

解題思路

這題的解題思路非常直接。首先,讀取飲料的數量 a,然後讀取每個飲料的價格並儲存在陣列 b 中。接著,讀取查詢的數量 c,然後對於每個查詢,讀取兩個飲料的索引 xy,計算 b[x] + b[y] 並輸出結果。

複雜度分析

  • 時間複雜度: O(n + q),其中 n 是飲料的數量,q 是查詢的數量。讀取飲料價格需要 O(n) 時間,處理每個查詢需要 O(1) 時間,總共 q 個查詢需要 O(q) 時間。
  • 空間複雜度: O(n),主要用於儲存飲料價格的陣列 b

程式碼

#include <iostream>
using namespace std;
int main(){
	int a;
	while(cin >> a){
		int b[a]={0};
		for(int i=0;i<a;i++){
			cin >> b[i];
		}
		int c,x,y;
		cin >> c;
		for(int i=0;i<c;i++){
			cin >> x >> y;
			cout << b[x]+b[y] << endl;
		}
	}
}

Discussion