837B - Flag of Berland - CodeForces Solution


brute force implementation *1600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

bool ok(vector<string> v){
    int n = v.size();
    int m = v[0].size();

    for(int i = 0; i < n; i++){
        for(int j = 1; j < m; j++){
            if(v[i][j] != v[i][j-1]) return 0;
        }
    }

    vector<char> v1;
    vector<int> w;
    for(int i = 0; i < n; i++){
        if(i == 0 || v[i][0] != v[i-1][0]){
            v1.push_back(v[i][0]);
            w.push_back(1);
        } else w.back()++;
    }
    if(v1.size() != 3) return 0;
    if(w[0] != w[1] || w[1] != w[2]) return 0;

    set<char> s(v1.begin(), v1.end());
    if(s.size() != 3) return 0;

    return 1;
}

vector<string> trans(vector<string> v){
    vector<string> res;
    int n = v.size(), m = v[0].size();
    for(int j = 0; j < m; j++){
        string cur;
        for(int i = 0; i < n; i++){
            cur += v[i][j];
        }
        res.push_back(cur);
    }
    return res;
}

int main() {

    int n, m;
    cin >> n >> m;

    vector<string> v(n);
    for(string &x : v) cin >> x;

    if(ok(v) || ok(trans(v))) cout << "YES";
    else cout << "NO";

    return 0;
}


Comments

Submit
0 Comments
More Questions

1141B - Maximal Continuous Rest
1341A - Nastya and Rice
1133A - Middle of the Contest
385A - Bear and Raspberry
1311B - WeirdSort
1713F - Lost Array
236B - Easy Number Challenge
275A - Lights Out
147A - Punctuation
253A - Boys and Girls
1327E - Count The Blocks
984A - Game
12B - Correct Solution
1355B - Young Explorers
485A - Factory
628A - Tennis Tournament
1436B - Prime Square
1707B - Difference Array
1422C - Bargain
1611F - ATM and Students
660A - Co-prime Array
1692F - 3SUM
1470A - Strange Birthday Party
190D - Non-Secret Cypher
1721B - Deadly Laser
1721C - Min-Max Array Transformation
1721A - Image
1180C - Valeriy and Deque
557A - Ilya and Diplomas
1037D - Valid BFS