Submission #1044172

#TimeUsernameProblemLanguageResultExecution timeMemory
1044172vjudge1Svjetlost (COI18_svjetlost)C++17
14 / 100
121 ms11604 KiB
#include <bits/stdc++.h> using namespace std; #define int long double #define point pair<int,int> #define x first #define y second int const pi=3.141592653589793; int const oe=180; int angle(point p1,point p2){ int deltaY = p2.y - p1.y; int deltaX = p2.x - p1.x; int dg = (atan2(deltaY, deltaX) * oe) / pi; if(dg<0) dg+=360; return dg; } bool check(int a1,int a2){ if(a1<=180) return (a2<a1) || (a2>a1+oe); else return (a2>a1-oe && a2<a1); } int dist(point a,point b){ return sqrt(((a.x-b.x)*(a.x-b.x))+((a.y-b.y)*(a.y-b.y))); } int solve(vector<point> pts){ int n=pts.size(); if(n==1) return 0; else if(n==2) return dist(pts[0],pts[1]); for (int i = 0; i < n; ++i){ pts.push_back(pts[i]); } int len=dist(pts[0],pts[1])+dist(pts[1],pts[2]); int maxx=len; int p1=0,p2=2; int a=0,b=2; while(p1<n){ int a1=angle(pts[p1],pts[p1+1]); int a2=angle(pts[p2+1],pts[p2]); // cout<<a1<<' '<<a2<<endl; if(p2+1<p1+n && a1!=a2 && check(a1,a2)){ len+=dist(pts[p2],pts[p2+1]); p2+=1; } else{ len-=dist(pts[p1],pts[p1+1]); p1+=1; } if(len>maxx){ maxx=len; a=p1,b=p2; } // maxx=max(maxx,len); } return maxx; } signed main(){ int n; cin>>n; vector<point> pts(n); for (int i = 0; i < n; ++i) cin>>pts[i].x>>pts[i].y; cout<<fixed; cout<<setprecision(10)<<solve(pts)<<endl; return 0; }

Compilation message (stderr)

svjetlost.cpp: In function 'long double solve(std::vector<std::pair<long double, long double> >)':
svjetlost.cpp:41:9: warning: variable 'a' set but not used [-Wunused-but-set-variable]
   41 |     int a=0,b=2;
      |         ^
svjetlost.cpp:41:13: warning: variable 'b' set but not used [-Wunused-but-set-variable]
   41 |     int a=0,b=2;
      |             ^
#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...