标签:style blog class code java c
1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cmath> 5 #include <cstdio> 6 using namespace std; 7 struct point { 8 double x,y; 9 }; 10 point be[100005],en[100005]; 11 int ans[100005]; 12 int res[100005]; 13 14 double max(double a,double b){ 15 return a>b?a:b; 16 } 17 double min(double a,double b){ 18 return a<b?a:b; 19 } 20 21 int inter(point a,point b,point c,point d){ 22 if(min(a.x,b.x)>max(c.x,d.x)||min(a.y,b.y)>max(c.y,d.y)||min(c.x,d.x)>max(a.x,b.x)||min(c.y,d.y)>max(a.y,b.y)) 23 return 0; 24 double h,i,j,k; 25 h = (c.x-a.x)*(b.y-a.y)-(c.y-a.y)*(b.x-a.x); 26 i = (d.x-a.x)*(b.y-a.y)-(d.y-a.y)*(b.x-a.x); 27 j = (a.x-c.x)*(d.y-c.y)-(a.y-c.y)*(d.x-c.x); 28 k = (b.x-c.x)*(d.y-c.y)-(b.y-c.y)*(d.x-c.x); 29 return h*i<0&&j*k<0; 30 } 31 int main() 32 { 33 int n; 34 while(scanf("%d",&n)==1&&n){ 35 for(int i=0;i<n;i++) 36 cin>>be[i].x>>be[i].y>>en[i].x>>en[i].y; 37 memset(ans,0,sizeof(ans)); 38 memset(res,0,sizeof(res)); 39 for(int i=0;i<n;i++){ 40 for(int j=i+1;j<n;j++){ 41 if(inter(be[i],en[i],be[j],en[j])){ 42 ans[i] =1; 43 break; 44 } 45 } 46 } 47 int cnt =0; 48 for(int i=0;i<n;i++){ 49 if(!ans[i]) 50 res[cnt++] = i+1; 51 } 52 printf("Top sticks: "); 53 for(int i=0;i<cnt-1;i++) 54 printf("%d, ",res[i]); 55 printf("%d.\n",res[cnt-1]); 56 57 } 58 return 0; 59 }
标签:style blog class code java c
原文地址:http://www.cnblogs.com/Bang-cansee/p/3724249.html