| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 139573 | mirceaishere | Tetris (COCI17_tetris) | C++14 | 2 ms | 504 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
using namespace std;
int piesa1[4][4]={{1,1,0,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}};
int piesa21[4][4]={{1,1,1,1},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
int piesa22[4][4]={{1,0,0,0},{1,0,0,0},{1,0,0,0},{1,0,0,0}};
int piesa31[4][4]={{0,1,1,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}};
int piesa32[4][4]={{1,0,0,0},{1,1,0,0},{0,1,0,0},{0,0,0,0}};
int piesa41[4][4]={{0,1,0,0},{1,1,0,0},{1,0,0,0},{0,0,0,0}};
int piesa42[4][4]={{1,1,0,0},{0,1,1,0},{0,0,0,0},{0,0,0,0}};
int piesa51[4][4]={{0,1,0,0},{1,1,0,0},{0,1,0,0},{0,0,0,0}};
int piesa52[4][4]={{0,1,0,0},{1,1,1,0},{0,0,0,0},{0,0,0,0}};
int piesa53[4][4]={{1,1,1,0},{0,1,0,0},{0,0,0,0},{0,0,0,0}};
int piesa54[4][4]={{1,0,0,0},{1,1,0,0},{1,0,0,0},{0,0,0,0}};
int n, m, i, j, imin, jmin, v[20][20], a[20][20], nr1, nr2, nr3, nr4, nr5, ii, jj, ok;
int piesacrt[6][6];
int di[4]={1, -1,  0,  0};
int dj[4]={0,  0,  1, -1};
char ch;
/// prima cifra = nr piesei
/// a doua cifra = modul in care este pusa
void fill(int ic, int jc, int ii, int jj){
    v[ic][jc]=0;
    piesacrt[ii][jj]=1;
    imin=min(ii, imin);
    jmin=min(jj, jmin);
    for(int d=0; d<4; d++){
        int iv=ic+di[d];
        int jv=jc+dj[d];
        if(a[ic][jc]==a[iv][jv] && v[iv][jv]){
            fill(iv, jv, ii+di[d], jj+dj[d]);
        }
    }
}
int main(){
    cin>>n>>m;
    for(i=1; i<=n; i++){
        for(j=1; j<=m; j++){
            cin>>ch;
            v[i][j]=ch-'a'+1;
            if(v[i][j]==-50){
                v[i][j]=0;
            }
            a[i][j]=v[i][j];
        }
    }
    for(i=1; i<=n; i++){
        for(j=1; j<=m; j++){
            if(v[i][j]!=0){
                imin=7;
                jmin=7;
                for(int aux1=0; aux1<6; aux1++){
                    for(int aux2=0; aux2<6; aux2++){
                        piesacrt[aux1][aux2]=0;
                    }
                }
                fill(i, j, 2, 2);
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa1[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr1++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa21[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr2++;
                }
                ok=1;
                for(int ii=0; ii<4; ii++){
                    for(int jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa22[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr2++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa31[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr3++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa32[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr3++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa41[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr4++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa42[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr4++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa51[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr5++;
                }
                ok=1;
                for(int ii=0; ii<4; ii++){
                    for(int jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa52[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr5++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa53[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr5++;
                }
                ok=1;
                for(ii=0; ii<4; ii++){
                    for(jj=0; jj<4; jj++){
                        if(piesacrt[imin+ii][jmin+jj]!=piesa54[ii][jj]){
                            ok=0;
                            break;
                        }
                    }
                }
                if(ok==1){
                    nr5++;
                }
            }
        }
    }
    cout<<nr1<<"\n"<<nr2<<"\n"<<nr3<<"\n"<<nr4<<"\n"<<nr5;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
