Submission #1021542

#TimeUsernameProblemLanguageResultExecution timeMemory
1021542vjudge1Vision Program (IOI19_vision)C++17
44 / 100
8 ms2004 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using vi = vector <int>;

void construct_network (int h, int w, int K) {
    vi th;
    auto toLine = [&](ll i, ll j) { return 0 <= i && i < h && 0 <= j && j < w ? i*w+j : -16; };
    auto getNeigh = [&](ll i, ll j) -> vi {
        vi ans;
        for (ll k = 0; k < K; k++) {
            ans.push_back(toLine(i-K+k, j+k));
            ans.push_back(toLine(i+k, j+K-k));
        }
        sort(ans.begin(), ans.end());
        ans.resize(unique(ans.begin(), ans.end()) - ans.begin());
        if (ans.empty()) return ans;
        if (ans[0] == -16) ans.erase(ans.begin());
        return ans;
    };
    for (ll i = 0; i < h; i++) {
        for (ll j = 0; j < w; j++) {
            vi neighs = getNeigh(i, j);
            if (neighs.empty()) continue;
            th.push_back(add_and({ toLine(i, j), add_or({ neighs }) }));
        }
    }
    add_or(th);
}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:27:42: warning: narrowing conversion of 'toLine.construct_network(int, int, int)::<lambda(ll, ll)>(i, j)' from 'long long int' to 'int' [-Wnarrowing]
   27 |             th.push_back(add_and({ toLine(i, j), add_or({ neighs }) }));
      |                                    ~~~~~~^~~~~~
vision.cpp:27:42: warning: narrowing conversion of 'toLine.construct_network(int, int, int)::<lambda(ll, ll)>(i, j)' from 'long long int' to 'int' [-Wnarrowing]
#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...