ARC 039 C Z塗り

2015/06/20 (Sat) ARC AtCoder 貪欲

問題

日本語

方針

上の行から見ていって,まだ塗られていない最も右のマスを探し,そこを起点にして塗る.

実装

vector<string> draw(vector<string> g, int y, int x){
    int N = g.size();
    for(int i=0;i<=x;i++) g[y][i] = 'o';
    if(y+1 < N) for(int i=x;i<=N;i++) g[y+1][i] = 'o';
    return g;
}
 
signed main(){
    int N;
    while(cin >> N){
        vector<string> g(N);
        rep(i,N) cin >> g[i];
        int ans = 0;
        rep(y,N){
            int dx = -1;
            rep(x,N) if(g[y][x]=='.') dx = x;
            if(dx != -1) g = draw(g,y,dx), ans++;
            // draw g[y][drawx];
        }
        cout << ans << endl;
    }
}