Skip to content
ik-fib's page
Go back

paiza オンラインハッカソン 第四弾(POH Lite)のコード書いてみた

プログラミング問題でスキルレベルを評価、転職するサイトのpaizaでオンライン参加型のイベント「paizaオンラインハッカソン4 Lite」が開催されたので、投稿してみました。

公式に投稿コードを公開してもOKということだったので、せっかくなのでブログにまとめました。

1,2問目はそのまま条件に総和を出すようにしています。

3問目は合計値を逐次更新していき、最大値を出力するようにしました。もう少し高速化の手法がありそうな気はしましたが(このイベント、毎回計測表示限界の0.01秒で出してる人いますし) 、とりあえず実行時間的には問題なさそうだったので、以下のコードで提出してみました。 (そもそも、コード自体がもう少し整理できそう)

ソースコード

1問目

#include <iostream>
using namespace std;
int main(void){
    int n,ans=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int tmp;
        cin>>tmp;
        ans+=tmp;
    }
    cout<<ans<<endl;
    return 0;
}a.cpp

2問目

#include <iostream>
#include <algorithm>
using namespace std;
int main(void){
    int n,ans=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int t,s,p;
        cin>>t>>s>>p;
        ans+=max(t-s,0)*p;
    }
    cout<<ans<<endl;
    return 0;
}b.cpp

3問目

#include <iostream>
#include <algorithm>
using namespace std;
int main(void){
    int t,n,ans=0;
    cin>>t>>n;
    int m[n+1];
    for(int i=0;i<t;i++)
    {
        cin>>m[i];
        ans+=m[i];
    }
    int now=ans;
    for(int i=t;i<n;i++)
    {
        cin>>m[i];
        now=now+m[i]-m[i-t];
        ans=max(ans,now);
    }
    cout<<ans<<endl;
    return 0;
}c.cpp

結果

実際にpaiza上に投稿した結果を以下にまとめました。 - https://paiza.jp/poh/enkoi-second/940fad1e - https://paiza.jp/poh/enkoi-third/72be7929 - https://paiza.jp/poh/enkoi-ending/65140932


Share this post:

Previous Post
wordpressのソースコード挿入をgistに変えた
Next Post
TopCoder SRM 639 Div2 参加記

Related Posts