Submission #267164

#TimeUsernameProblemLanguageResultExecution timeMemory
267164peuchTriangles (CEOI18_tri)C++17
20 / 100
1 ms384 KiB
#include<bits/stdc++.h> #include "trilib.h" using namespace std; const int MAXN = 4e5; int n; int ini; int v[MAXN]; int marc[MAXN]; void quickSort(int l, int r); int main(){ srand(time(0)); n = get_n(); for(int i = 1; i <= n; i++) v[i] = i; ini = rand() % n; ini++; swap(v[1], v[ini]); quickSort(2, n); int topo = -1; int ans = 0; vector<int> hull; for(int i = 1; i <= n; i++){ while(topo > 1 && !is_clockwise(hull[topo - 1], hull[topo], v[i])){ topo--; hull.pop_back(); } hull.push_back(v[i]); topo++; } while(topo > 1 && !is_clockwise(hull[topo - 1], hull[topo], hull[0])){ topo--; hull.pop_back(); } ans = hull.size(); if(topo > 1 && !is_clockwise(hull[topo], hull[0], hull[1])){ ans--; } give_answer(ans); } void quickSort(int l, int r){ if(l >= r) return; int point = rand() % (r - l + 1); point += l; point = v[point]; vector<int> left; vector<int> right; for(int i = l; i <= r; i++){ if(v[i] == point) continue; if(is_clockwise(ini, point, v[i])) right.push_back(v[i]); else left.push_back(v[i]); } int id = l; for(int i = 0; i < left.size(); i++) v[id++] = left[i]; int mid = id; v[id++] = point; for(int i = 0; i < right.size(); i++) v[id++] = right[i]; quickSort(l, mid - 1); quickSort(mid + 1, r); }

Compilation message (stderr)

tri.cpp: In function 'void quickSort(int, int)':
tri.cpp:58:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |  for(int i = 0; i < left.size(); i++)
      |                 ~~^~~~~~~~~~~~~
tri.cpp:62:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for(int i = 0; i < right.size(); i++)
      |                 ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...