堕人間の備忘録

フナチーズ・ドロップアウト

動的計算法

初めてのブローグ(twitter風に)

とりあえずテスト的な感じで...今日ですね、

Crossing Black Ice

なんか解けてなかったので(難易度5出し簡単なの。)

#include<bits/stdc++.h>
#include<ctype.h>
#define int long long int
#define rep(a,b) for(int a=0;a<b;a++)
 
using namespace std;
 
int tx[] = {1,0,-1,0};
int ty[] = {0,1,0,-1};
int w,h,chee,sx,sy;
char bases;
int base[1003][1003];
 
int ice(int x,int y){
    int ans=0;
    if(base[x][y]){
        base[x][y]=0;
        for(int i=0;i<4;i++){
            if(x+tx[i]>=0&&x+tx[i]<w&&y+ty[i]>=0&&y+ty[i]<h){
                ans = max(ans,ice(x+tx[i],y+ty[i])+1);
            }
        }
        base[x][y]=1;
 
    } return ans;
}
 
signed main(){
    while(1){
        cin >> w >> h;
        if(!w||!h)break;
        rep(f,h){
            rep(s,w){
                cin >> base[s][f];
            }
        }
        int ans=0;
        rep(f,h){
            rep(s,w){
                if(base[s][f]){
                    ans = max(ans,ice(s,f));
                }
            }
        }
        cout << ans << endl;
    }
return 0;
}

 

 汚いコードだなーって感じ。

ちなみに0しか出力されないという悲しい事件が起きたのだが

入力読み取り時のとこで”base[s][w]”と書いてた⚓

ケアレスは怖いよ

今日のプログラミングの小テストで1/5点しか取れなかったのもね、うん、