风险人群筛查【202009-2CCF】--代码有注释

    科技2023-10-25  100

    整体思路比较容易,不过有个坑坑了我半天,就是一个人可能会两次逗留在高危区域。。

    #include<iostream> #include<math.h> #include<algorithm> #include<string.h> using namespace std; pair<int,int>p[1005]; int main(){ int n,k,t,xl,yd,xr,yu; int passby=0,stay=0; cin>>n>>k>>t>>xl>>yd>>xr>>yu; for(int i=0;i<n;i++){ //n个人 memset(p,0,sizeof(p)); for(int j=0;j<t;j++){ //t个时刻的位置坐标点 cin>>p[j].first; cin>>p[j].second; } int iin = 0; //连续在高危区域内的点 bool passflag = false; //判断是否已经在经过的人群里了,第一次是false bool stayflag = false; //判断是否已经在逗留的人群里了,第一次是false for(int m=0;m<t;m++){ // t个时刻 if(p[m].first<=xr && p[m].first>=xl && p[m].second>=yd && p[m].second<=yu){ if(!passflag){ passby++; passflag = true; } iin++; if(iin == k && !stayflag){ //连续 k 个时刻 stay++; stayflag = true; } }//打断连续性 else{ iin = 0; } } } cout<<passby<<endl; cout<<stay; }
    Processed: 0.009, SQL: 8