| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
谁能帮我看看哪里错了啊。#include<iostream>
#include<cmath>
#include<memory>
#include<iomanip>
#include<algorithm>
using namespace std;
double pi = acos(-1.0);
double r;
int n,c,g;
int point[1001];
double Area(int n1,int n2);
bool Flag ;
int main()
{
int n_case,i,j,k;
cin>>n_case;
for(i = 1; i <= n_case; i ++)
{
cout<<"Scenario #"<<i<<":"<<endl;
cin>>r>>n>>c>>g;
r/=2.0;
//find suitbale points
memset(point,0,sizeof(point));
for(j = 0 ;j < c; j++ )
point[j] = g*j%n;
sort(point,point+c);
double area = 0.00;
double a1,a2,a3;
int tn;
for(j = 2; j < c-1;j ++)
{
tn = (point[j]/2.0);
k = 1 ;
while(point[k] < tn) k++;
a1 = Area(0,k)+Area(k,j);
a2 = Area(0,k-1) + Area(k-1,j);
if(a1<a2) a1 = a2;
tn = (point[j]+n)/2;
k = j+1;
while(point[k] < tn) k++;
a2 = Area(j,k)+Area(k,0);
a3 = Area(j,k-1)+Area(k-1,0);
if(a2<a3) a2 = a3;
if(area < a1+a2) area = a1+a2;
}
cout<<setiosflags(ios::fixed)<<setprecision(6)<<area<<endl<<endl;
}
return 0;
}
double Area(int n1,int n2)
{
return r*r*sin(2*pi/n*((point[n2]+n-point[n1])%n))/2;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator