Submission #1963949


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
using namespace std;

int r, c;

int senbei[10][10000];

int black[10000];
int white[10000];

int rec(vector<int> bl_ch,vector<int> wh_ch,int cou)
{
    if(cou == r)
    {
        int result = 0;
        for(int i = 0;i < c;i++)
        {
            result += max(black[i] + bl_ch[i],white[i] + wh_ch[i]);
        }
        return result;
    }
    int ans = 0;
    ans = rec(bl_ch,wh_ch,cou + 1);
    for(int i = 0;i < c;i++)
    {
        bl_ch[i] += (senbei[cou][i] == 0 ? -1 : 1);
        wh_ch[i] += (senbei[cou][i] == 1 ? -1 : 1);
    }
    ans = max(ans,rec(bl_ch,wh_ch,cou + 1));
    for(int i = 0;i < c;i++)
    {
        bl_ch[i] += (senbei[cou][i] == 1 ? -1 : 1);
        wh_ch[i] += (senbei[cou][i] == 0 ? -1 : 1);
    }
    return ans;
}

int main()
{
    cin >> r >> c;
    int tmp;
    for (int i = 0; i < r; i++)
    {
        for (int j = 0; j < c; j++)
        {
            cin >> tmp;
            senbei[i][j] = tmp;
            if(tmp == 0)
            {
                black[j]++;
            }
            else
            {
                white[j]++;
            }
        }
    }

    vector<int> bl(c);
    vector<int> wh(c);

    cout << rec(bl,wh,0) << endl;
    return 0;


}

Submission Info

Submission Time
Task E - おせんべい
User niuez
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1402 Byte
Status AC
Exec Time 104 ms
Memory 1704 KB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 1 ms 256 KB
data2 AC 2 ms 256 KB
data3 AC 3 ms 384 KB
data4 AC 46 ms 1048 KB
data5 AC 104 ms 1704 KB