#421(div2)B. Mister B and Angle in Polygon

On one quiet day all of sudden Mister B decided to draw angle a on his field. Aliens have already visited his field and left many different geometric figures on it. One of the figures is regular convex n-gon (regular convex polygon with n sides).

That‘s why Mister B decided to use this polygon. Now Mister B must find three distinct vertices v1, v2, v3 such that the angle (where v2 is the vertex of the angle, and v1 and v3 lie on its sides) is as close as possible to a. In other words, the value should be minimum possible.

If there are many optimal solutions, Mister B should be satisfied with any of them.

Input

First and only line contains two space-separated integers n and a (3?≤?n?≤?105, 1?≤?a?≤?180) — the number of vertices in the polygon and the needed angle, in degrees.

Output

Print three space-separated integers: the vertices v1, v2, v3, which form . If there are multiple optimal solutions, print any of them. The vertices are numbered from 1 to n in clockwise order.

Examples

Input

3 15

Output

1 2 3

Input

4 67

Output

2 1 3

Input

4 68

Output

4 1 2

Note

In first sample test vertices of regular triangle can create only angle of 60 degrees, that‘s why every possible angle is correct.

Vertices of square can create 45 or 90 degrees angles only. That‘s why in second sample test the angle of 45 degrees was chosen, since |45?-?67|?<?|90?-?67|. Other correct answers are: "3 1 2", "3 2 4", "4 2 3", "4 3 1", "1 3 4", "1 4 2", "2 4 1", "4 1 3", "3 1 4", "3 4 2", "2 4 3", "2 3 1", "1 3 2", "1 2 4", "4 2 1".

In third sample test, on the contrary, the angle of 90 degrees was chosen, since |90?-?68|?<?|45?-?68|. Other correct answers are: "2 1 4", "3 2 1", "1 2 3", "4 3 2", "2 3 4", "1 4 3", "3 4 1".

题意:给出N,X,问正N边形,我们找出三个点,使其组成的角度最接近X,点的编号按照顺时针增加

思路:正多边形,我们可以知道三个点组成的角度只有N-2个,我们可以求出最小的那个角度即2 1 3,第二小的为2 1 4 ,最大的为  2  1  N

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 int main(){
 5    int n,x;
 6    cin>>n>>x;
 7    double sum=(n-2)*180*1.0;
 8    double s1=sum/n*1.0;
 9    int xx=n-2;
10    double  MMin=s1/xx*1.0;
11    double Min=1e9;
12    int k;
13    for(int i=1;i<=n-2;i++){
14         double y=abs(MMin*i-x)*1.0;
15         if(y<Min){
16             Min=y;
17             k=i;
18         }
19    }
20    cout<<2<<" "<<1<<" "<<2+k<<endl;
21 }
时间: 2024-10-13 15:22:44

#421(div2)B. Mister B and Angle in Polygon的相关文章

Codeforces Round #421 (Div. 2)B Mister B and Angle in Polygon

题目: 这里 题意:给一个正n(n <= 100000)边形和一个角度a,在正n边形n找到3个不同的顶点v1,v2,v3,使得 和a之间的差最小,并且输出v1,v2,v3: 思路:可以把这个多边形放在一个圆里面.发现的大小等于v1,v3对应圆心角/2.所有的角都是180/a的倍数.固定一个点的位置1,然后以2为圆心角的起点为n-1的终点枚举另一个点的位置即可. 代码: // #include<bits/stdc++.h> using namespace std; const int ma

codeforces round 421 div2 补题 CF 820 A-E

A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef long long int LL; const LL N=1,M=1,MOD=1; int main() {//freopen("t.txt","r",stdin); int c,v0,v1,a,l; scanf("%d%d%d%d%d",&c,&

#420(div2)C. Mister B and Boring Game

题意:输入a,b,l,r.机器先输入a个字符串,必须是字典序从低到高的,人再输入b个任意字符串,然后机器再输入a个,再人,但是机器输入的还有一个规则,就是从当前的字符串后a个,机器这次不能再输入 思路:机器输入的是固定的吧,所以重要是人的,我们输入的如果全是当前字符串的最后一个,那么肯定是最优的,而且实验一下,就会发现是2*(a+b)的循环节,然后L,R怎么解决呢,如果他是同一个循环节中,直接取%,如果是相邻的循环节,那么就是l取---尾,开头---r取%,不同循环节,那么就是FOR整个循环节

Codeforces Round #421 B

B. Mister B and Angle in Polygon 题意:给你一个正n边形(每个点顺时针依次为1 2 3...n),一个角度a,从多边形中任选3个点A B C 求最接近a的角ABC 输出ABC 思路:将n多边形外接一个圆,可知,当2个点确定的时候,角度就已经确定了(只考虑小于180度的情况),所以,确定一个点之后暴力另一个点就可以求得所有情况了(注意只要暴力到n-2就可以了) AC代码: #include "iostream" #include "string.

CodeForces - 820

Mister B and Book ReadingCodeForces - 820A 题意:C,V0,V1,A,L..总共有C页书,第一天以V0速度读,每天加A,但是不能超过V1,并且要从前一天的看到的当前页数的前L页开始读 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int c,v0,v1,a,l,ans; int main(){ scanf("%d%d

WPF实现大数据分析

开头语 经过一段时间研究,终于实现CS和BS相同效果的大数据展示平台了.首先来看看实现的效果,超炫的效果,客户特别喜欢,个人也非常满意,分享给各位,同大家一起交流学习. 大数据展示平台 从上图可以看出,分为左中右三栏,左右主要是展示图标为主,中间部分展示地图,这种展示主要使用于物流行业,亮点是中间的地图,物流覆盖的地方和线路在地图中显示的淋漓尽致,效果非常炫,用WPF去现实的,图片进行切片,研究了四个晚上做了这效果. 按快捷键Ctrl+F1可以对数据库进行设置 按快捷键Ctrl+F2可以对系统标

cf386(div2)大一狗ACM之路

#cf386(div2)总结#前两题很顺利的做了出来, c题扔了, D题wrong了5发才A掉.A题签到题, 但是想多了, 代码写的有点长了. 找被整除最小值*7.B题 读题读了一会, 读完了就有思路了, 1A. 字符串问题, 从后往前两个两个的放到新的字符串里, 一个从最左, 一个从最右, 模拟指针扫着放, 最后特判会不会扫到一起.C题跳了没看, 最后做完了D题回来看了一眼没什么思路 日后再说.D题, 恩.. 两个多小时都用在这题上面了, 20分钟的时候做完了B之后就一直再啃D题, 暴力判断啊

Codeforces gym Hello 2015 Div1 B and Div2 D

Codeforces gym 100571 problem D Problem 给一个有向图G<V,E>和源点S,边的属性有长度L和颜色C,即E=<L,C>.进行Q次询问,每次给定一个点X,输出S到X的最短路的长度(不存在则输出 -1).但要求S到X的路径中相邻两条边颜色不一样. Limits Time Limit(ms): 1000 Memory Limit(MB): 256 |V|, |E|: [1, 10^5] X, S: [1, |V| ] L: [1, 10^9] |C|

编写css让div2在div1的右下角?

<style>#div1{ width:200px; height:200px; background-color:#F00;}#div2{ width:50px; height:50px; background:#FF0; position:relative; left:75%; top:75%; }</style></head> <body><div id="div1"> <div id="div2&quo