Submission #34291


Source Code Expand

Copy
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <sstream>

using namespace std;

void erase(vector<vector<int> > &a, int i, int j) {
    int di[8] = {-1,0,1,-1,1,-1,0,1}, dj[8]={-1,-1,-1,0,0,1,1,1};
    if (i<0 || a.size() <= i || j<0 || a[0].size() <= j)return;
    if (a[i][j] == 0)return;
    a[i][j] = 0;
    for (int c=0; c<8; c++) {
        int ni = i+di[c];
        int nj = j+dj[c];
        if (ni<0 || a.size() <= ni || nj<0 || a[0].size() <= nj)continue;
        if (a[ni][nj] == 0)continue;
        erase(a, ni, nj);
    }
}

int main() {
    int h,w;
    cin >> h >> w;
    vector<string> mat(h);
    vector<vector<int> > sumi(h+1, vector<int>(w+1)),sumj(h+1, vector<int>(w+1));
    for (int i=0; i<h; i++) {
        cin >> mat[i];
    }

    for (int i=1; i<h; i++) {
        for (int j=1; j<w; j++) {
            if (mat[i][j] == 'o') {
                sumi[i][j] = sumi[i-1][j] + 1;
                sumj[i][j] = sumj[i][j-1] + 1;
            } else {
                sumi[i][j] = 0;
                sumj[i][j] = 0;
            }
        }
    }    
    int a = 0,b = 0,c = 0;
    for (int k=200; k>0; k--) {
        for (int i=0; i<h; i++) {
            for (int j=0; j<w; j++) {
                if (sumi[i][j] == k * 5 && sumj[i][j] == k * 2 && sumi[i+1][j] == 0 || sumi[i][j] == k * 2 && sumj[i][j] == k * 5 && sumj[i][j+1] == 0) {
                    a++;
                    erase(sumi, i, j);
                    erase(sumj, i, j);
                }
            }
        }
        for (int i=0; i<h; i++) {
            for (int j=0; j<w; j++) {
                if (sumi[i][j] == k * 4 && sumj[i][j] == k * 1 && sumi[i+1][j] == 0 || sumi[i][j] == k * 1 && sumj[i][j] == k * 4 && sumj[i][j+1] == 0){
                    b++;
                    erase(sumi, i, j);
                    erase(sumj, i, j);
                }
            }
        }
        for (int i=0; i<h; i++) {
            for (int j=0; j<w; j++) {
                if ((sumi[i][j] == k * 3 && sumj[i][j] == k * 1 || sumi[i][j] == k * 1 && sumj[i][j] == k * 3) && (sumi[i+1][j] == 0 && sumj[i][j+1] == 0)) {
                    c++;
                    erase(sumi, i, j);
                    erase(sumj, i, j);
                }
            }
        }
    }
    cout << a << " " << b << " " << c << endl;
}

Submission Info

Submission Time
Task D - アルファベット探し
User y3eadgbe
Language C++ (G++ 4.6.4)
Score 0
Code Size 2422 Byte
Status WA
Exec Time 1348 ms
Memory 19708 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 33
WA × 21
RE × 4
Set Name Test Cases
All 00_min.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rndsmall_00.txt, 01_rndsmall_01.txt, 01_rndsmall_02.txt, 01_rndsmall_03.txt, 01_rndsmall_04.txt, 01_rndsmall_05.txt, 01_rndsmall_06.txt, 01_rndsmall_07.txt, 01_rndsmall_08.txt, 01_rndsmall_09.txt, 01_rndsmall_10.txt, 01_rndsmall_11.txt, 01_rndsmall_12.txt, 01_rndsmall_13.txt, 01_rndsmall_14.txt, 01_rndsmall_15.txt, 01_rndsmall_16.txt, 01_rndsmall_17.txt, 01_rndsmall_18.txt, 01_rndsmall_19.txt, 02_rndmax_00.txt, 02_rndmax_01.txt, 02_rndmax_02.txt, 02_rndmax_03.txt, 02_rndmax_04.txt, 02_rndmax_05.txt, 02_rndmax_06.txt, 02_rndmax_07.txt, 02_rndmax_08.txt, 02_rndmax_09.txt, 02_rndmax_10.txt, 02_rndmax_11.txt, 02_rndmax_12.txt, 02_rndmax_13.txt, 02_rndmax_14.txt, 02_rndmax_15.txt, 02_rndmax_16.txt, 02_rndmax_17.txt, 02_rndmax_18.txt, 02_rndmax_19.txt, 03_rnd_00.txt, 03_rnd_01.txt, 03_rnd_02.txt, 03_rnd_03.txt, 03_rnd_04.txt, 03_rnd_05.txt, 03_rnd_06.txt, 03_rnd_07.txt, 03_rnd_08.txt, 03_rnd_09.txt, 04_empty_00.txt, 05_maxret_00.txt
Case Name Status Exec Time Memory
00_min.txt AC 51 ms 788 KB
00_sample_01.txt AC 50 ms 784 KB
00_sample_02.txt AC 23 ms 788 KB
00_sample_03.txt AC 23 ms 796 KB
00_sample_04.txt AC 24 ms 788 KB
00_sample_05.txt AC 25 ms 888 KB
01_rndsmall_00.txt AC 36 ms 912 KB
01_rndsmall_01.txt AC 36 ms 1152 KB
01_rndsmall_02.txt AC 36 ms 1012 KB
01_rndsmall_03.txt AC 36 ms 904 KB
01_rndsmall_04.txt AC 36 ms 996 KB
01_rndsmall_05.txt AC 36 ms 916 KB
01_rndsmall_06.txt AC 36 ms 1020 KB
01_rndsmall_07.txt AC 34 ms 920 KB
01_rndsmall_08.txt AC 37 ms 908 KB
01_rndsmall_09.txt AC 36 ms 1020 KB
01_rndsmall_10.txt AC 36 ms 1028 KB
01_rndsmall_11.txt AC 36 ms 1020 KB
01_rndsmall_12.txt AC 36 ms 1020 KB
01_rndsmall_13.txt AC 35 ms 1016 KB
01_rndsmall_14.txt AC 35 ms 1020 KB
01_rndsmall_15.txt AC 36 ms 1016 KB
01_rndsmall_16.txt AC 35 ms 1032 KB
01_rndsmall_17.txt AC 35 ms 1016 KB
01_rndsmall_18.txt AC 36 ms 1020 KB
01_rndsmall_19.txt AC 36 ms 1028 KB
02_rndmax_00.txt WA 1311 ms 11128 KB
02_rndmax_01.txt WA 1339 ms 10880 KB
02_rndmax_02.txt WA 1340 ms 9968 KB
02_rndmax_03.txt WA 1335 ms 10620 KB
02_rndmax_04.txt WA 1334 ms 10240 KB
02_rndmax_05.txt WA 1339 ms 11248 KB
02_rndmax_06.txt RE 689 ms 19708 KB
02_rndmax_07.txt RE 965 ms 19704 KB
02_rndmax_08.txt WA 1347 ms 10948 KB
02_rndmax_09.txt WA 1321 ms 10776 KB
02_rndmax_10.txt WA 1322 ms 11120 KB
02_rndmax_11.txt WA 1329 ms 12408 KB
02_rndmax_12.txt WA 1340 ms 10876 KB
02_rndmax_13.txt RE 980 ms 19700 KB
02_rndmax_14.txt RE 696 ms 19708 KB
02_rndmax_15.txt WA 1335 ms 10236 KB
02_rndmax_16.txt WA 1345 ms 14104 KB
02_rndmax_17.txt WA 1348 ms 13316 KB
02_rndmax_18.txt WA 1344 ms 11776 KB
02_rndmax_19.txt WA 1329 ms 10876 KB
03_rnd_00.txt AC 56 ms 1140 KB
03_rnd_01.txt WA 300 ms 3452 KB
03_rnd_02.txt AC 288 ms 2808 KB
03_rnd_03.txt WA 339 ms 4084 KB
03_rnd_04.txt WA 392 ms 4204 KB
03_rnd_05.txt AC 97 ms 1664 KB
03_rnd_06.txt AC 492 ms 4480 KB
03_rnd_07.txt AC 176 ms 2172 KB
03_rnd_08.txt WA 703 ms 12020 KB
03_rnd_09.txt WA 577 ms 5372 KB
04_empty_00.txt AC 1311 ms 9856 KB
05_maxret_00.txt AC 1344 ms 9848 KB