답안 #546927

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
546927 2022-04-09T00:07:47 Z jeroenodb NLO (COCI18_nlo) C++14
77 / 110
1625 ms 62084 KB
#include "bits/stdc++.h"
using namespace std;
#define all(x) begin(x),end(x)
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { string sep; for (const T &x : v) os << sep << x, sep = " "; return os; }
#define debug(a) cerr << "(" << #a << ": " << a << ")\n";
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> pi;
const int mxN = 1e5+1, oo = 1e9;
int main() {
    int n,m,k; cin >> n >> m >> k;
    vector<map<int,int>> mp(n+1);
    for(int i=1;i<=n;++i) {
        mp[i] = {{1,k},{m+1,0}};
    }
    while(k--) {
        int x,y,r; cin >> x >> y >> r;
        for(int i=max(x-r,1);i<=min(m,x+r);++i) {
            int dif = (x-i);
            int delta = int(sqrtl(ll(r)*r-ll(dif)*dif+0.2L));
            int lo = max(1,y-delta), hi = min(m,y+delta)+1;
            // range set
            auto& s = mp[i];
            auto it = s.upper_bound(lo);
            int last= prev(it)->second;
            while(it->first < hi) {
                last = it->second;
                it = s.erase(it);
            }
            if(it->first!=hi) s[hi]=last;
            s[lo]=k;
        }
    }
    ll ans=0;
    for(auto& s : mp) {
        int lastx=0,last=0;
        for(auto [x,h] : s) {
            ans+=ll(x-lastx)*last;
            lastx=x,last=h;
        }
    }
    cout << ans;
}

Compilation message

nlo.cpp: In function 'int main()':
nlo.cpp:39:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   39 |         for(auto [x,h] : s) {
      |                  ^
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 724 KB Output is correct
2 Correct 14 ms 900 KB Output is correct
3 Incorrect 4 ms 1876 KB Output isn't correct
4 Correct 63 ms 3356 KB Output is correct
5 Correct 64 ms 12616 KB Output is correct
6 Incorrect 369 ms 19784 KB Output isn't correct
7 Correct 158 ms 30324 KB Output is correct
8 Correct 1067 ms 44100 KB Output is correct
9 Incorrect 327 ms 46784 KB Output isn't correct
10 Correct 1625 ms 62084 KB Output is correct