Submission #1972268


Source Code Expand

#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
#define FOR(i,s,e) for(int i = (s);i <= (e);i++)
 
int N;
int M;
 
string flag[1000];
string emblem[2];
 
bool issame[1000][1000];
 
 
int none_cou = 0;
int main()
{
 
    cin >> M >> N;
 
    FOR(i,0,M - 1)
    {
        cin >> flag[i];
    }
    FOR(i,0,1)
    {
        cin >> emblem[i];
    }
    FOR(i,0,M - 2)
    {
        FOR(j,0,N - 2)
        {
            bool same = true;
            FOR(k,0,1)
            {
                FOR(l,0,1)
                {
                    same = same && (flag[i + k][j + l] == emblem[k][l]);
                }
            }
 
            issame[i][j] = same;
            if(same)
            {
                none_cou++;
            }
        }
    }
 
    int result = none_cou;
 
    string JOI = "JOI";
    FOR(mi,0,M - 1)
    {
        FOR(ni,0,N - 1)
        {
            int cou = 0;
            for(char c : JOI)
            {
                int cou = none_cou;
                FOR(m,max(mi - 1,0),min(mi,M - 2))
                {
                    FOR(n,max(ni - 1,0),min(ni,N - 2))
                    { 
                        bool same = true;
                        FOR(k,0,1)
                        {
                            FOR(l,0,1)
                            {
                                if(!(0 <= m + k && m + k < M && 0 <= n + l && n + l < N))
                                {
                                    same = false;
                                    break;
                                }
 
                                char tmp = flag[m + k][n + l];
                                if(m + k == mi && n + l == ni) tmp = c;
                                same = same && (emblem[k][l] == tmp);
                            }
                        }
                        if(same && (issame[m][n] == false))
                        {
                            cou++;
                        }
                        if( !same && issame[m][n])
                        {
                            cou--;
                        }
 
                    }
                }
                result = max(result,cou);
                if(result == cou)
                {
                }
            }
        }
    }
 
    cout  << result << endl;
    return 0;
 
}

Submission Info

Submission Time
Task A - JOI 紋章 (JOI Emblem)
User niuez
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2453 Byte
Status AC
Exec Time 311 ms
Memory 2304 KB

Judge Result

Set Name Subtask 01 Subtask 02
Score / Max Score 30 / 30 70 / 70
Status
AC × 25
AC × 53
Set Name Test Cases
Subtask 01 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt
Subtask 02 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 1 ms 256 KB
01-03.txt AC 1 ms 256 KB
01-04.txt AC 1 ms 256 KB
01-05.txt AC 1 ms 256 KB
01-06.txt AC 1 ms 256 KB
01-07.txt AC 1 ms 256 KB
01-08.txt AC 1 ms 256 KB
01-09.txt AC 1 ms 256 KB
01-10.txt AC 1 ms 256 KB
01-11.txt AC 1 ms 256 KB
01-12.txt AC 1 ms 256 KB
01-13.txt AC 1 ms 256 KB
01-14.txt AC 1 ms 256 KB
01-15.txt AC 2 ms 256 KB
01-16.txt AC 2 ms 256 KB
01-17.txt AC 2 ms 256 KB
01-18.txt AC 2 ms 256 KB
01-19.txt AC 2 ms 256 KB
01-20.txt AC 2 ms 256 KB
01-21.txt AC 2 ms 256 KB
01-22.txt AC 2 ms 256 KB
02-01.txt AC 1 ms 256 KB
02-02.txt AC 1 ms 256 KB
02-03.txt AC 1 ms 256 KB
02-04.txt AC 1 ms 256 KB
02-05.txt AC 2 ms 256 KB
02-06.txt AC 2 ms 256 KB
02-07.txt AC 2 ms 256 KB
02-08.txt AC 4 ms 384 KB
02-09.txt AC 4 ms 384 KB
02-10.txt AC 4 ms 384 KB
02-11.txt AC 4 ms 384 KB
02-12.txt AC 1 ms 256 KB
02-13.txt AC 1 ms 256 KB
02-14.txt AC 4 ms 384 KB
02-15.txt AC 13 ms 512 KB
02-16.txt AC 12 ms 512 KB
02-17.txt AC 14 ms 512 KB
02-18.txt AC 13 ms 512 KB
02-19.txt AC 281 ms 2304 KB
02-20.txt AC 311 ms 2304 KB
02-21.txt AC 296 ms 2304 KB
02-22.txt AC 282 ms 2304 KB
02-23.txt AC 297 ms 2304 KB
02-24.txt AC 306 ms 2304 KB
02-25.txt AC 270 ms 2304 KB
02-26.txt AC 284 ms 2304 KB
02-27.txt AC 295 ms 2304 KB
02-28.txt AC 308 ms 2304 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB