Submission #230445

#TimeUsernameProblemLanguageResultExecution timeMemory
230445VEGAnnNLO (COCI18_nlo)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define sz(x) ((int)x.size()) #define pii pair<int,int> #define pis pair<int,short> #define ft first #define sd second #define MP make_pair #define PB push_back #define all(x) x.begin(),x.end() using namespace std; typedef long long ll; const int oo = 2e9; const int N = 100100; vector<pis> events[N]; set<int> st; int n, m, k; ll ans = 0; ll sqr(ll x) { return (x * x); } ll dist(int &x1, int &x2, int &y1, int &y2){ return sqr(x1 - x2) + sqr(y1 - y2); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); #ifdef _LOCAL freopen("in.txt","r",stdin); #endif // _LOCAL cin >> n >> m >> k; for (int i = 0; i < k; i++){ int x, y, r; cin >> x >> y >> r; int ro = max(1, x - r), lf = y, rt = y; ll rr = sqr(r); while (ro <= x){ while (lf > 1 && dist(x, ro, y, lf - 1) <= rr) lf--; while (rt < m && dist(x, ro, y, rt + 1) <= rr) rt++; events[ro].PB(MP(lf, i + 1)); events[ro].PB(MP(rt + 1, -(i + 1))); ro++; } ro = min(n, x + r), lf = y, rt = y; while (ro > x){ while (lf > 1 && dist(x, ro, y, lf - 1) <= rr) lf--; while (rt < m && dist(x, ro, y, rt + 1) <= rr) rt++; events[ro].PB(MP(lf, i + 1)); events[ro].PB(MP(rt + 1, -(i + 1))); ro--; } } for (int i = 1; i <= n; i++){ int lst = 0; if (!sz(events[i])){ ans += ll(k) * ll(m); continue; } sort(all(events[i])); st.clear(); st.insert(0); for (int it = 0; it < sz(events[i]); ){ int j = it; ans += (ll(events[i][j].ft) - ll(lst) - 1) * (ll(k) - ll(*(--st.end()))); lst = events[i][j].ft - 1; while (j < sz(events[i]) && events[i][j].ft == events[i][it].ft){ if (events[i][j].sd < 0) st.erase(-events[i][j].sd); else st.insert(events[i][j].sd); j++; } it = j; } if (lst < m) ans += (ll(m) - ll(lst)) * ll(k); } cout << ans; return 0; }

Compilation message (stderr)

nlo.cpp: In function 'int main()':
nlo.cpp:42:48: error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
             while (lf > 1 && dist(x, ro, y, lf - 1) <= rr)
                                             ~~~^~~
nlo.cpp:21:4: note:   initializing argument 4 of 'll dist(int&, int&, int&, int&)'
 ll dist(int &x1, int &x2, int &y1, int &y2){
    ^~~~
nlo.cpp:45:48: error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
             while (rt < m && dist(x, ro, y, rt + 1) <= rr)
                                             ~~~^~~
nlo.cpp:21:4: note:   initializing argument 4 of 'll dist(int&, int&, int&, int&)'
 ll dist(int &x1, int &x2, int &y1, int &y2){
    ^~~~
nlo.cpp:56:48: error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
             while (lf > 1 && dist(x, ro, y, lf - 1) <= rr)
                                             ~~~^~~
nlo.cpp:21:4: note:   initializing argument 4 of 'll dist(int&, int&, int&, int&)'
 ll dist(int &x1, int &x2, int &y1, int &y2){
    ^~~~
nlo.cpp:59:48: error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
             while (rt < m && dist(x, ro, y, rt + 1) <= rr)
                                             ~~~^~~
nlo.cpp:21:4: note:   initializing argument 4 of 'll dist(int&, int&, int&, int&)'
 ll dist(int &x1, int &x2, int &y1, int &y2){
    ^~~~