読者です 読者をやめる 読者になる 読者になる

SRM 477 DIV 2

250

王様は休暇を取りたい。出来るだけ会合のスケジュールと被らないような日程の休暇スケジュールを組みたい。

できるだけ会合と被らない日程を組んだ時に、やむを得ず被ってしまい変更しなければならない会合スケジュールの数をreturnせよ。

class VacationTime {
public:
  int bestSchedule(int n, int k, vector <int> wD) {
    int result=INT_MAX,t=0;
    for(int i=0;i<n-k+1;i++){
    	t=0;
  	for(int j=0;j<k;j++){
		for(int p=0;p<wD.size();p++){
			if(i+j==wD[p]-1)t++;
		}
  	}
  	result=min(result,t);
     }
    return result;
  }
};

143.66 Pt(必要の無いRe-submitで70点くらい失う・・・クソっ)

500

ハニカムビーチ!奇数列・偶数列の時でそれぞれ判定条件変えなきゃいけない。

class Islands {
public:
  int beachLength(vector <string> ki) {
    int r=0;
    vector<string>kd(1);	
        
    /*番兵テクニック*/
    for(int i=0;i<ki[0].length()+2;i++)kd[0]+="*";
    for(int i=0;i<ki.size();i++)kd.push_back("*"+ki[i]+"*");
    kd.push_back(kd[0]);

   for(int i=0;i<kd.size();i++){
    	 for(int x=0;x<kd[i].length();x++){
    	 	if(kd[i][x]=='#'){
	    	 		if(kd[i][x+1]=='.')r++;	//右
	     	 		if(kd[i][x-1]=='.')r++;	//左
				if(kd[i-1][x]=='.')r++;	//上	 		
				if(kd[i+1][x]=='.')r++; //下
    	 		if(i%2){
				if(kd[i-1][x-1]=='.')r++; //左上
	    	 		if(kd[i+1][x-1]=='.')r++; //左下
			}else{
				if(kd[i-1][x+1]=='.')r++; //右上
	    	 		if(kd[i+1][x+1]=='.')r++; //右下
			}
		}
	}
   }
    return r;
  }

};

235.16 Pt

--

計 378.82Pt (452位)

Rate:514→588

初めて500点問題解けたけどレートは相変わらず。

Rate1000までの道のりは長い。