「CodePlus 2018 3 月赛」白金元首与克劳德斯

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

所有的云在此时没有重叠的面积

抄十次,以后再看错题抄二十次。

 1 //#include<iostream>
 2 #include<cstring>
 3 #include<cstdlib>
 4 #include<cstdio>
 5 //#include<map>
 6 #include<math.h>
 7 //#include<time.h>
 8 //#include<complex>
 9 #include<algorithm>
10 using namespace std;
11 
12 int T,n;
13 #define maxn 400011
14 struct Event
15 {
16     int pos,v; bool type;
17     bool operator < (const Event &b) const {return pos<b.pos || (pos==b.pos && v<b.v);}
18 }a[maxn];int la;
19 int main()
20 {
21     scanf("%d",&T);
22     while (T--)
23     {
24         scanf("%d",&n); la=0;
25         for (int i=1,x,y,w,h,d;i<=n;i++)
26         {
27             scanf("%d%d%d%d%d",&x,&y,&w,&h,&d);
28             la++; a[la]=(Event){x+y,1,d==1};
29             la++; a[la]=(Event){x+y+w+h,-1,d==1};
30         }
31         sort(a+1,a+1+la);
32         int nowa=0,nowb=0,ans=1;
33         for (int i=1;i<=la;i++)
34         {
35             if (a[i].type==1) nowa+=a[i].v;
36             else nowb+=a[i].v;
37             if (nowa && nowb) {ans=2; break;}
38         }
39         printf("%d
",ans);
40     }
41     return 0;
42 }
View Code
原文地址:https://www.cnblogs.com/Blue233333/p/8510997.html