Submission #1131745


Source Code Expand

#include <bits/stdc++.h>

#define FOR(i,b,e) for(int i=(b); i <= (e); ++i)
#define FORD(i,b,e) for(int i=(b); i >= (e); --i)
#define SIZE(c) (int) (c).size()
#define FORE(i,c) FOR(i,0,SIZE(c)-1)
#define FORDE(i,c) FORD(i,SIZE(c)-1,0)

#define pb push_back
#define mp make_pair
#define st first
#define nd second


using namespace std;

typedef long long ll;
typedef pair <int,int> pii;
typedef pair <ll,ll> pll;

typedef vector <int> VI;
typedef vector <bool> VB;
typedef vector <pii> VP;
typedef vector <ll> VL;
typedef vector <pll> VPL;

typedef vector <VI> VVI;
typedef vector <VL> VVL;
typedef vector <VB> VVB;
typedef vector <VP> VVP;

const int MOD = 1000000007;
const int INF = 1000000001;
const ll LINF = 1000000000000000001LL;


/*************************************************************************/

int main() {
    ios_base::sync_with_stdio(0);
    
    int n;
    cin >> n;
    
    bool any = false;
    
    int tab[n][n];
    FOR(i,0,n-1) {
        string s;
        cin >> s;
        
        FOR(j,0,n-1) {
            tab[i][j] = (s[j] == '#');
            if (tab[i][j]) any = true;
        }
    }
    
    if (!any) {
        cout << -1;
        return 0;
    }
    
    int columnsNotFull = 0;
    FOR(j,0,n-1) {
        bool full = true;
        FOR(i,0,n-1) if (!tab[i][j]) full = false;
        
        if (!full) columnsNotFull++;
    }
    
    if (!columnsNotFull) {
        cout << 0;
        return 0;
    }
    
    int col[n];
    FOR(i,0,n-1) col[i] = 0;
    
    FOR(i,0,n-1) FOR(j,0,n-1) if (tab[i][j]) {
        col[j] = 1;
    }
    
    int best = INF;
    FOR(i,0,n-1) {
        int here = 0;
        FOR(j,0,n-1) if (!tab[i][j]) {
            here++;
        }
        
        if (!col[i]) {
            here++;
        }
        
        best = min(best, here);
    }
    
    cout << best + columnsNotFull;

    return 0;
}

/*************************************************************************/

Submission Info

Submission Time
Task B - Row to Column
User krismaz
Language C++14 (GCC 5.4.1)
Score 1300
Code Size 2055 Byte
Status AC
Exec Time 4 ms
Memory 1280 KB

Judge Result

Set Name Sample Subtask All
Score / Max Score 0 / 0 300 / 300 1000 / 1000
Status
AC × 5
AC × 20
AC × 43
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt
Subtask 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt, 2_13.txt, 2_14.txt, 2_15.txt, 2_16.txt, 2_17.txt, 2_18.txt, 2_19.txt, 2_20.txt, 2_21.txt, 2_22.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 1 ms 256 KB
0_03.txt AC 1 ms 256 KB
0_04.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 1 ms 256 KB
1_02.txt AC 1 ms 256 KB
1_03.txt AC 1 ms 256 KB
1_04.txt AC 1 ms 256 KB
1_05.txt AC 1 ms 256 KB
1_06.txt AC 1 ms 256 KB
1_07.txt AC 1 ms 256 KB
1_08.txt AC 1 ms 256 KB
1_09.txt AC 1 ms 256 KB
1_10.txt AC 1 ms 256 KB
1_11.txt AC 1 ms 256 KB
1_12.txt AC 1 ms 256 KB
1_13.txt AC 1 ms 256 KB
1_14.txt AC 1 ms 256 KB
2_00.txt AC 2 ms 1280 KB
2_01.txt AC 3 ms 1280 KB
2_02.txt AC 3 ms 1280 KB
2_03.txt AC 3 ms 1280 KB
2_04.txt AC 3 ms 1280 KB
2_05.txt AC 3 ms 1280 KB
2_06.txt AC 3 ms 1280 KB
2_07.txt AC 3 ms 896 KB
2_08.txt AC 4 ms 1152 KB
2_09.txt AC 3 ms 1152 KB
2_10.txt AC 3 ms 1152 KB
2_11.txt AC 4 ms 1280 KB
2_12.txt AC 3 ms 1152 KB
2_13.txt AC 3 ms 1024 KB
2_14.txt AC 3 ms 1152 KB
2_15.txt AC 3 ms 1024 KB
2_16.txt AC 3 ms 1152 KB
2_17.txt AC 3 ms 1024 KB
2_18.txt AC 2 ms 896 KB
2_19.txt AC 3 ms 1152 KB
2_20.txt AC 2 ms 896 KB
2_21.txt AC 2 ms 896 KB
2_22.txt AC 3 ms 1280 KB