Submission #1034702

#TimeUsernameProblemLanguageResultExecution timeMemory
1034702agussNowruz (IOI17_nowruz)Text
0 / 100
0 ms0 KiB
#include <bits/stdc++.h>
#define _USE_MATH_DEFINES
#define endl "\n"
#define sp " "
#define MOD 1000000007
#define f1(i, x) for(auto &i : x)
#define f2(i, x, j) for(ll i = j; i < x; i++)
#define raya() cout << endl << "====================================" << endl
#define dbg(x) cerr << #x << ": " << x << endl;
#define INF LLONG_MAX
using namespace std;
typedef long long ll;
vector<vector<bool>> vis;
ll n, m;
bool check_neighbours(ll i, ll j){
    if(i == n or j == m) return 0;
    ll ans = 0;
    if(i > 0) ans += vis[i - 1][j];
    if(i < n - 1) ans += vis[i + 1][j];
    if(j > 0) ans += vis[i][j - 1];
    if(j < m - 1) ans += vis[i][j + 1];
    return ans == 1 and !vis[i][j];
}
bool change_neighbours(ll i, ll j){
    bool t = false;
    if(check_neighbours(i, j + 1)){
        vis[i][j + 1] = 1;
        t = true;
    } 
    if(check_neighbours(i, j - 1)){
        vis[i][j - 1] = 1;
        t = true;
    } 
    if(check_neighbours(i + 1, j)){
        vis[i + 1][j] = 1;
        t = true;
    } 
    if(check_neighbours(i - 1, j)) {
        vis[i - 1][j] = 1;
        t = true;
    }
    return t;
}
void solve(){
    ll k;
    cin >> n >> m >> k;
    vector<vector<char>> arr(n, vector<char>(m)), ans(n, vector<char>(m, 'X'));
    vis.resize(n, vector<bool>(m));
    bool x = true;
    f1(i, arr){
        f1(j, i){
            cin >> j;
            if(j == '#') x = false;
        }
    }
    if(x){
        bool l;
        vis[1][1] = true;
        do {
            l = 0;
            for(int i = 1; i < n; i++)
                for(int j = 1; j < m; j++)
                    if(change_neighbours(i, j))
                        l = 1;
        } while(l);
    }
    f2(i, n, 0){
        f2(j, m, 0){
            if(vis[i][j]) ans[i][j] = '.';
            cout << ans[i][j];
        }
        cout << endl;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie();
    cout.tie();
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...