2012/03/07

Topcoder SRM 536(Div.1) 参戦記


はじめてのDiv.1でした。

250-Problem:Div.2 Hardと同じ問題でした。特に問題なく提出しましたが、やはり少し難しいように感じました。158.49点でした。

500-Problem:基本的には平均を出力すればよく、1目のサイコロがある場合だけ特別・・・と思っていたのですが、他にも特別な場合があったようです。撃墜されてしまいました。

得点は158.49, 順位は632位. Ratingは1200->1184. まだDiv.1で闘うには実力が足りません。


[Easy(C++),Accepted]



#include<iostream>
#include<vector>


using namespace std;


class MergersDivOne{
public:
double findMaximum(vector <int> revenues){
int i,j;
int tmp,n=revenues.size(),minpl;
double now;

for(i=0;i<n;i++){
minpl=i;
for(j=i+1;j<n;j++) if(revenues[minpl]>revenues[j]) minpl=j;
tmp=revenues[i];
revenues[i]=revenues[minpl];
revenues[minpl]=tmp;
}

now=revenues[0];
for(i=1;i<n;i++){
now+=revenues[i];
now/=2;
}
return now;
}
};


[Medium(C++),Challenged]



#include<iostream>
#include<vector>


using namespace std;


class RollingDiceDivOne{
public:
long long mostLikely(vector <int> dice){
int one_num=0,i,n=dice.size();
long double ave=0;
long long ret;
for(i=0;i<n;i++) one_num+=(dice[i]==1);
if(n-one_num==1) return (long long)n;

for(i=0;i<n;i++) ave+=0.5*(dice[i]+1);

ret=(long long)ave;
return ret;
}
};

0 件のコメント:

コメントを投稿