Submission #503631

#TimeUsernameProblemLanguageResultExecution timeMemory
503631andrei_boacaTriangles (CEOI18_tri)C++17
0 / 100
1 ms204 KiB
#include <bits/stdc++.h> #include "trilib.h" //#include "trilib.c" using namespace std; map<vector<int>,bool> f; set<int> border; bool isgood(int a,int b,int c) { vector<int> v; v.push_back(a); v.push_back(b); v.push_back(c); sort(v.begin(),v.end()); if(f.count(v)==0) f[v]=is_clockwise(v[0],v[1],v[2]); bool ans=f[v]; int nr=0; if(a!=v[0]) nr++; if(b!=v[1]) nr++; if(c!=v[2]) nr++; if(nr%2==0&&nr>0) ans=!ans; return ans; } int main() { int n; n=get_n(); for(int i=1;i<=n;i++) if(border.find(i)==border.end()) { int j=1; if(i==1) j=2; int good=2; int val=-1; for(int k=1;k<=n;k++) if(k!=i&&k!=j) { int x=isgood(i,j,k); if(val==-1) { val=x; continue; } else if(x!=val) { good--; if(good==0) break; val=x; j=k; } } good=1; val=-1; for(int k=1;k<=n;k++) if(k!=i&&k!=j) { int x=isgood(i,j,k); if(val==-1) { val=x; continue; } else if(x!=val) { good--; if(good==0) break; } } if(good) { border.insert(i); border.insert(j); } } int ans=border.size(); give_answer(ans); return 0; }
#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...