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

マトリョーシカ的日常

ワクワクばらまく明日のブログ。

私はついにレッドコーダーへの道を走り始めた!Topcoder初参加。(SRM 573 div2 level1)

topcoder

初参加!

http://instagr.am/p/W4ABTGhBF_/

 ついにTopcoderに初参加した。夜遅くまで起きていられなかったり、予定が入ったりで今まで参加できなかった。今回は日本時間10:10スタートということで春休みを存分にもてあます大学生にとっては最高の時間帯だったのではないだろうか。

 まぁlevel1しかできなかったんだけどね。

 それでも、Javaを起動させて世界中から人が会場にあつまって来ているのを眺めていると、とても緊張したし、そわそわわくわくした。プログラマーってたくさんいるんだと改めて実感した。

 また今度もやりたい。

 TopCoder Statistics - Problem Statement
 
 問題:スキー場を経営しているので、左手の山から順に低くなるようにてっぺんを削りたい。1削ると1コストがかかる。
山の峰々のてっぺん(int型のベクトル)が与えられているとして、最小のコストを返せ。

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
 class SkiResortsEasy{
    public:
     int minCost(vector <int> a){
         int cost=0;
         cout << a[0] <<":"<<cost<<endl;
         for(int i=1;i<a.size();i++){
             if(a[i]>a[i-1]){
                 cost=cost+a[i]-a[i-1];
                 a[i]=a[i-1];
             }
             cout << a[i] <<":"<<cost<<endl;
         }
         return cost;
     }
};

int main(){
    SkiResortsEasy ob1;
    int a[]={749,560,921,166,757,818,228,584,366,88};
    vector <int> tx(a,a+10);
    ob1.minCost(tx);
    return 0;
}
  • 何もいうことはなし。
  • なのにコーディングに時間がかかった。
  • これからはforなどのマクロを使おう。


これからはlevel2の過去問も解いていこう。