题目链接:​​http://codeforces.com/contest/820/problem/B​​​
题意:有个正凸多边形,现在告诉你一个角度a,让你从多边形里面找一个角,使得尽可能的接近a,输出任意一组顶点编号
解析:如果把多边形外接圆,相当于有n-2个圆周角,固定一条边,移动另一条边,每次增长的度数就是圆周角的大小,维护一下最小值就直接出结果了

#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int n,a;
scanf("%d %d",&n,&a);
if(n==3)
puts("2 1 3");
else
{
double du = 180.0/n;
double ans = 0x7fffffff;
int i;
for(int j=1;j<=n-2;j++)
{
if(ans>fabs(a-1.0*j*du))
{
ans = a-j*du;
i = j;
}
}
printf("2 1 %d\n",2+i);
}
return 0;
}