[C_AR187-易] 工作集中的記憶體使用量
Time Limit: 1 seconds
問題描述 :
記憶體使用量 是一種 串流資料的形態。例如: 880 640 879 980 1024 2840 ,前述的串流資料代表著:
在設定工作集時,系統設計者會設定所要觀測的時間區間 長度 ,其為一個 「 整數 」 ,接著系統就會算出這段時間區間長度中的記憶體最大值,以前例而言,假設時間區間為「 4 個時間單位」 ,那麼每個工作集的最大值如下:
輸入說明 :
輸入有兩行。
第 1 行是工作集的時間單位長度,其為一個正整數N (1≤N≤100)。
第 2 行是一個記憶體使用量的串流,其為一個字串,包含M (1≤M≤150)個正整數(1~110,000),每個正整數用空白隔開。
輸出說明 :
計算每個工作集中的記憶體最大量。每一個工作集的結果輸出成一行。最後一個結果輸出後,請加一個換行。
範例 :
問題描述 :
記憶體使用量 是一種 串流資料的形態。例如: 880 640 879 980 1024 2840 ,前述的串流資料代表著:
- 單位時間 1 的記憶體消耗為 880 單位
- 單位時間 2 的記憶體消耗為 640 單位
- 單位時間 3 的記憶體消耗為 879 單位
- …
- 依此類推
在設定工作集時,系統設計者會設定所要觀測的時間區間 長度 ,其為一個 「 整數 」 ,接著系統就會算出這段時間區間長度中的記憶體最大值,以前例而言,假設時間區間為「 4 個時間單位」 ,那麼每個工作集的最大值如下:
- 工作集 1 : [880 640 879 980] 1024 2840 ,最大值 980
- 工作集 2 : 880 [640 879 980 1024] 2840 ,最大值 1024
- 工作集 3 : 880 640 [879 980 1024 2840] ,最大值 2840
- 工作集 4 : 880 640 879 [980 1024 2840] ,最大值 2840
輸入說明 :
輸入有兩行。
第 1 行是工作集的時間單位長度,其為一個正整數N (1≤N≤100)。
第 2 行是一個記憶體使用量的串流,其為一個字串,包含M (1≤M≤150)個正整數(1~110,000),每個正整數用空白隔開。
輸出說明 :
計算每個工作集中的記憶體最大量。每一個工作集的結果輸出成一行。最後一個結果輸出後,請加一個換行。
範例 :
輸入範例 | 輸出範例 |
4 880 640 879 980 1024 2840 | 980 1024 2840 |
- #include <iostream>
- #include <string>
- #include <sstream>
- using namespace std;
- int main() {
- // [C_AR187-易] 工作集中的記憶體使用量
- // g++(c++11)
- string n;//工作集的時間單位長度
- getline(cin, n);
- if(n != "0")
- {
- string works;
- getline(cin, works);
- int M[1500];
- fill(M, M+1500, 0);
- int len = 0;
- //字串切割
- stringstream ss(works);
- string token;
- while (getline(ss, token, ' '))
- {
- M[len] = stoi(token);
- len++;
- }
- int max = -1;
- int j = 0;
- int i = 0;
- int N = stoi(n);
- while(j+N <= len)
- {
- for(int i = j;i < j+N;i++)
- {
- if(max < M[i])
- {
- max = M[i];
- }
- }
- cout << max << endl;
- max = 0;
- j++;
- }
- }
- return 0;
- }
沒有留言:
張貼留言