1 solutions

  • 1
    @ 2025-8-18 10:01:25
    #include<bits/stdc++.h>
    using namespace std;
    int l,n,lights[100001],ans;
    int main(){
    	scanf("%d%d",&l,&n);
    	fill(lights,lights+1+l,1); 
    	for(int i = 1;i<=n;i++){
    		int a,b,c;
    		scanf("%d%d%d",&a,&b,&c);
    		switch(a){
    			case 1:
    				for(int j = b;j<=c;j++)lights[j] = 1;
    				break;
    			case 2:
    				for(int j = b;j<=c;j++)
    					if(lights[j] != 1){
    						while(lights[j] != 2 && lights[j] != 4){
    							lights[j]++;
    							if(lights[j] == 6)lights[j]-=5;
    						}
    					}
    				break;
    			case 3:
    				for(int j = b;j<=c;j++)
    					while(lights[j] != 3 && lights[j] != 5){
    						lights[j]++;
    						if(lights[j] == 6)lights[j]-=5;
    					}
    				break;
    			case 4:
    				for(int j = b;j<=c;j++)
    					for(int k = b;k<=j;k++){
    						lights[j]++;
    						if(lights[j] == 6)lights[j]-=5;
    					}
    				break;
    		}
    	}
    	for(int i = 0;i<=l;i++)
    		if(lights[i] == 1 || lights[i] == 6)ans++;
    	printf("%d",ans);
        return 0;
    }
    

    Information

    ID
    789
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    21
    Accepted
    3
    Uploaded By