Submission #537497

#TimeUsernameProblemLanguageResultExecution timeMemory
537497Hydroxic_AcidPlanine (COCI21_planine)C++17
20 / 110
1031 ms8684 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; #define int long long double n, h; vector<pair<double, double> > arr; bool comp(pair<double, double> i1, pair<double, double> i2){ return i1.second<i2.second; } signed main(){ //freopen("test.txt", "r", stdin); cin >> n >> h; if(n == 3){ cout << 0; return 0; } double prex = 0; double prey = 0; for(int i = 0; i < n; i++){ double x, y; cin >> x >> y; if(i == 0 || i == n - 1) continue; if(i % 2 && i != 1){ arr[(int)arr.size() - 1].second = prex + ((h - prey) * (x - prex) / (y - prey)); } else if(i%2 == 0){ arr.push_back(make_pair(x - ((h - y) * (x - prex)/(prey - y)), 0)); //cout << (h - y) << " " << (x - prex) << " " << prey - y << "\n" << ((h - y) * (x - prex)/(prey - y)) << "\n"; } prex = x; prey = y; } sort(arr.begin(), arr.end(), comp); int cnt = 1; double eest = arr[0].second; //cout << arr[0].first << " " << arr[0].second << "\n"; for(int i = 1; i < (int)arr.size(); i++){ //cout << arr[i].first << " " << arr[i].second << "\n"; if(arr[i].first <= eest) continue; eest = arr[i].second; cnt++; } cout << cnt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...