Submission #10374635


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<ll,ll> pl;
typedef vector<pl> vp;
#define fore(i,a,b) for(ll i=(ll)(a);i<=(ll)(b);++i)
#define rep(i,n) fore(i,0,(n)-1)
#define rfore(i,a,b) for(ll i=(ll)(b);i>=(ll)(a);--i)
#define rrep(i,n) rfore(i,0,(n)-1)
#define all(x) (x).begin(),(x).end()
const ll INF=1001001001;
const ll LINF=1001001001001001001;
const ll D4[]={0,1,0,-1,0};
const ll D8[]={0,1,1,0,-1,-1,1,-1,0};
template<class T>
bool chmax(T &a,const T &b){if(a<b){a=b;return 1;}return 0;}
template<class T>
bool chmin(T &a,const T &b){if(b<a){a=b;return 1;}return 0;}

ll del(vvl &a){
    ll h=a.size(),w=a[0].size();
    ll ret=0;
    rep(i,h)rep(j,w){
        if(a[i][j]==0)continue;
        ll k=j;
        while(k<w-1&&a[i][k+1]==a[i][j])k++;
        if(k>j){
            fore(l,j,k){
                ret+=a[i][l];
                a[i][l]=0;
            }
            j=k;
        }
    }
    return ret;
}
void move(vvl &a){
    ll h=a.size(),w=a[0].size();
    rep(i,w){
        ll idx=h-1;
        rrep(j,h){
            if(a[j][i]){
                if(idx!=j){
                    a[idx][i]=a[j][i];
                    a[j][i]=0;
                }
                idx--;
            }
        }
    }
}
ll f(vvl a,ll i,ll j){
    a[i][j]=0;
    ll ret=0;
    ll times=1;
    while(1){
        move(a);
        ll score=del(a);
        if(score==0)break;
        ret+=score*times;
        times*=2;
    }
    return ret;
}
void solve(){
    ll h,w,k;cin>>h>>w>>k;
    vector<string> c(h);rep(i,h)cin>>c[i];
    
    vvl a(h,vl(w));
    rep(i,h)rep(j,w)a[i][j]=c[i][j]-'0';

    ll ans=0;
    rep(i,h)rep(j,w)chmax(ans,f(a,i,j));
    cout<<ans<<endl;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(0);
    solve();
}

Submission Info

Submission Time
Task B - Falling Stone Game
User amotoma3
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1906 Byte
Status WA
Exec Time 14 ms
Memory 256 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 120 0 / 180
Status
AC × 4
AC × 6
WA × 2
AC × 13
WA × 6
Set Name Test Cases
Sample sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt
Subtask1 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub1_in6.txt, sub1_in7.txt, sub1_in8.txt
Subtask2 sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub1_in6.txt, sub1_in7.txt, sub1_in8.txt, sub2_in1.txt, sub2_in2.txt, sub2_in3.txt, sub2_in4.txt, sub2_in5.txt, sub2_in6.txt, sub2_in7.txt
Case Name Status Exec Time Memory
sample_1.txt AC 1 ms 256 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
sample_4.txt AC 2 ms 256 KB
sub1_in1.txt AC 1 ms 256 KB
sub1_in2.txt AC 1 ms 256 KB
sub1_in3.txt AC 1 ms 256 KB
sub1_in4.txt AC 1 ms 256 KB
sub1_in5.txt AC 1 ms 256 KB
sub1_in6.txt AC 1 ms 256 KB
sub1_in7.txt WA 1 ms 256 KB
sub1_in8.txt WA 1 ms 256 KB
sub2_in1.txt AC 1 ms 256 KB
sub2_in2.txt AC 1 ms 256 KB
sub2_in3.txt WA 2 ms 256 KB
sub2_in4.txt WA 4 ms 256 KB
sub2_in5.txt WA 8 ms 256 KB
sub2_in6.txt WA 13 ms 256 KB
sub2_in7.txt AC 14 ms 256 KB