Submission #116460

#TimeUsernameProblemLanguageResultExecution timeMemory
116460oolimryNLO (COCI18_nlo)C++14
66 / 110
263 ms65536 KiB
#include <bits/stdc++.h> using namespace std; int main() { //freopen("i.txt","r",stdin); ios_base::sync_with_stdio(false); cin.tie(0); long long n, m; cin >> n >> m; typedef pair<long long, long long> ii; vector<ii> stuff[n]; int q; cin >> q; for(int i = 0;i < n;i++){ stuff[i].push_back(ii(0,0)); stuff[i].push_back(ii(m,0)); } for(int qq = 1;qq <= q;qq++){ long long x, y, r; cin >> y >> x >> r; x--; y--; for(int i = y - r;i <= y + r;i++){ long long dy = abs(i - y); long long dx = sqrt(r * r - dy * dy); //cout << dx << " " << dy << " " << r << "\n"; stuff[i].push_back(ii(x - dx,qq)); stuff[i].push_back(ii(x + dx + 1,-1 * qq)); } } long long ans = 0; for(int i = 0;i < n;i++){ sort(stuff[i].begin(),stuff[i].end()); set<long long> values; for(int j = 0;j < stuff[i].size();j++){ if(j != 0 && stuff[i][j].first != stuff[i][j-1].first){ set<long long>::iterator it = values.end(); it--; long long v1 = q - *it; long long v2 = stuff[i][j].first - stuff[i][j-1].first; ans += v1 * v2; //cout << ans << " "; } if(stuff[i][j].second >= 0){ values.insert(stuff[i][j].second); } else{ values.erase(-1 * stuff[i][j].second); } } //cout << ans << "\n"; } cout << ans; return 0; }

Compilation message (stderr)

nlo.cpp: In function 'int main()':
nlo.cpp:43:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0;j < stuff[i].size();j++){
                       ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...