Submission #116465

#TimeUsernameProblemLanguageResultExecution timeMemory
116465oolimryNLO (COCI18_nlo)C++14
110 / 110
1020 ms63048 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<int, int> ii; static vector<int> stuff[100005]; int q; cin >> q; for(int i = 0;i < n;i++){ stuff[i].push_back(0); stuff[i].push_back(m * 1000); } 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((x - dx) * 1000 + qq); stuff[i].push_back((x + dx + 1) * 1000 + 500 + 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++){ int s1 = stuff[i][j] / 1000; int s2 = stuff[i][j] % 1000; if(j != 0){ set<long long>::iterator it = values.end(); it--; long long v1 = q - *it; long long v2 = s1 - (stuff[i][j-1] / 1000); ans += v1 * v2; //cout << ans << " "; } if(s2 < 500){ values.insert(s2); } else{ values.erase(s2 - 500); } } //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++){
                       ~~^~~~~~~~~~~~~~~~~
nlo.cpp:12:28: warning: typedef 'ii' locally defined but not used [-Wunused-local-typedefs]
     typedef pair<int, int> ii;
                            ^~
#Verdict Execution timeMemoryGrader output
Fetching results...