算法練習——喫糖

時間限制: 2  S        內存限制: 128  MB

題目描述:

某人買了n兜糖果,第i兜有Ai塊糖。此人把所有這些糖果用一個數字標記起來;他這樣標記這些糖,第一袋糖用用數字1到A1,第二袋糖用數字A1+1到A1+A2,如此類推。如果還沒明白看樣例可以更加明確此人的意圖.這個人不想一口氣把這些糖全喫掉,他用記事本隨機記下了這些糖的標號。記事本上寫着他要喫第幾塊糖,然後他就去對找對應糖袋。

輸入:

第一行給出一個數n,表示糖袋數,第二行給出n個數,表示每袋裏有多少個糖。(1<=n<=10^5)第三行給出一個數m,第四行給出m個數表示他要喫的第幾塊糖。每袋糖不超過1000顆(1<=m<=10^5)

輸出:

輸出m個答案,輸出他想喫的糖的編號在第幾袋,每個結果後輸出一個換行。

樣例輸入:

5 2 7 3 4 9 3 1 25 11

樣例輸出:

1 5 3

Language: C++

#include <iostream>  
  
using namespace std;  
int main(){
	int n,m;
	cin>>n;
	
	int a[n];
	int sum=0;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	cin>>m;
	int b[m];
	for(int j = 0;j<m;j++){
		cin>>b[j];
	}
	int count = 0;
	for(int j = 0;j<m;j++){
		for(int i = 0;i<n;i++){
			if(b[j]>sum){
				 sum += a[i];
				 count++;
			}
			
		}cout<<count<<endl;sum=0;count=0;
	}

}  
——非常歡迎您留言指正及改進微笑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章