1 条题解

  • 0
    @ 2024-8-18 22:03:44
    #include<iostream>
    #include<string>
    #include<vector>
    #include<algorithm>
    #include<cctype>
    using namespace std;
    
    int n,m;
    int a[10005]; //厌烦度 
    int yang[10005]; //1表示杨哥在,0表示杨哥不在 
    
    void input(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	
    	int o;
    	cin>>o;
    	for(int i=0;i<o;i++){
    		int t,y;
    		cin>>t>>y;	
    		//t-y时间,杨哥在场 
    		for(int j=t;j<=y;j++){
    			yang[j]=1;
    		}
    	}
    }
    
    void solve(){
    	vector<int> v; //用于存放被攻击的人 
    	int angry=0; //堆堆的厌烦度 
    	 
    	for(int i=1;i<=n;i++){
    		angry+=a[i]; //被rua了,厌烦度上升 
    		if(angry>=m){
    			//厌烦度大于阈值,发动攻击 
    			angry=0; // 厌烦度清零 
    			v.push_back(i); //被攻击的人 
    			if(yang[i]) m=int(m+m*0.2); //杨哥在场,厌烦度上限上升 
    		}
    	}
    	
    	// 输出被攻击的人 
    	for(int i:v) cout<<i<<" ";
    } 
    
    int main()
    {
    	input(); //输入 
    	solve(); //解题 
    	return 0;
    }
    

    信息

    ID
    37
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者