Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <iomanip>
- #include <map>
- #include <cmath>
- using namespace std;
- class Poligon {
- public:
- vector<double> x;
- vector<double> y;
- int nEdge;
- void set(double cox,double coy){
- x.push_back(cox);
- y.push_back(coy);
- }
- void print(){
- // cout<<"["<<x[0]<<","<<y[0]"-["<<x[x.size()-1]<<","<<y[y.size()-1]<<"]\n";
- cout<<fixed<<setprecision(2)<<"["<<x[0]<<","<<y[0]<<"]-["<<x[x.size()-1]<<","<<y[y.size()-1]<<"]"<<endl;
- }
- double keliling(){
- double k=0,dist;
- for(int i=0;i<x.size();i++){
- double dist = sqrt(pow(x[i]-x[(i+1)%x.size()], 2) + pow(y[i]-y[(i+1)%x.size()], 2));
- k+=dist;
- }
- return k;
- }
- };
- class Segitiga : public Poligon{
- public:
- double det,x_1,y_1,x_2,y_2,x_3,y_3;
- void set(double x1,double y1,double x2,double y2,double x3,double y3){
- x_1=x1;
- y_1=y1;
- x_2=x2;
- y_2=y2;
- x_3=x3;
- y_3=y3;
- det=abs(((x_2*y_3)+(x_3*y_1)+(x_1*y_2)-(y_1*x_2)-(y_2*x_3)-(y_3*x_1))/2);
- }
- double luas(){
- return det;
- }
- };
- class Segiempat : public Poligon
- {
- public:
- double a,b,c,d;
- double det,x1,y1,x2,y2,x3,y3,x4,y4;
- double luas(){
- return pow(keliling()/4,2);
- }
- };
- int main()
- {
- Segitiga triangle[101];
- Segiempat fourangle[101];
- int tri,four,ntri=0,nfour=0;
- double x1,y1,x2,y2,x3,y3,x4,y4;
- double rata_tri=0,rata_four=0;
- cin>>tri;
- for (int i = 0; i < tri; ++i)
- {
- cin>>x1>>y1>>x2>>y2>>x3>>y3;
- triangle[i].set(x1,y1,x2,y2,x3,y3);
- rata_tri+=triangle[i].luas();
- }
- rata_tri = rata_tri*1.0/tri;
- for (int i = 0; i < tri; ++i)
- {
- if(rata_tri < triangle[i].luas()) ntri++;
- }
- cin>>four;
- for (int i = 0; i < four; ++i)
- {
- cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
- fourangle[i].set(x1,y1);
- fourangle[i].set(x2,y2);
- fourangle[i].set(x3,y3);
- fourangle[i].set(x4,y4);
- rata_four+=fourangle[i].luas();
- }
- rata_four = rata_four*1.0/four;
- for (int i = 0; i < four; ++i)
- {
- if(rata_four < fourangle[i].luas()) nfour++;
- }
- cout<<fixed<<setprecision(2)<<rata_tri<<" "<<rata_four<<endl<<ntri<<" "<<nfour<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement