SRM576 DIV2 -250points

<問題>
①蛇口の数と、蛇口ごとにそこから出る水滴の数が与えられる。
例)3,4,1,1,5,6
②スポンジの長さLが与えられる。
例)L=3
③それぞれのスポンジについて、上から降順に配列が与えられる。
 配列の値は、スポンジの左側の位置。
例)3,1,0
④蛇口の水滴は、一番最初に当たった水滴に吸収される。
⑤このとき、各スポンジが吸収した水滴の値を配列で返す。

<ポイント>
・上にあるスポンジ、すなわちスポンジの配列の右側から
 その位置に相当する水滴の数を足してあげて、
 スポンジごとの合計を配列に格納する。
 「いったん吸収された水滴は0にクリアにする」ことで重複がなくなるのがポイント。


vector<int> determineHumidity(vector<int> intensity, int L, vector<int> leftEnd) {
vector <int> ans;

FORE(i,0,leftEnd.size()){
int tmp=0;
FOR(j,0,L){
tmp+=intensity[leftEnd[i]+j];
intensity[leftEnd[i]+j]=0;
}
ans.push_back(tmp);
}
return ans;

Share this

Related Posts

Previous
Next Post »