aoj0610:Weather Forecaster
解法
まず、この問題ではそれぞれの行を独立させて考えることができる。よって、与えられた行に対して答えを求めるという操作をH回行えばよい。
それぞれの行では、現時点で最も近いところにある雲のインデックス(存在しない場合は-1)を更新しながら左から走査していく。
コード
#include<bits/stdc++.h> using namespace std; int h,w; int main(){ cin>>h>>w; for(int i=0;i<h;i++){ char str[128];cin>>str; int n=-1; for(int j=0;j<w;j++){ if(str[j]=='c')n=j; if(j)cout<<" "; if(~n)cout<<j-n; else cout<<-1; } cout<<endl; } return 0; }