寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

アルゴ式(beta版): C++による「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)の解答例

アルゴ式(beta版)の「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。

C++による「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)の解答例

僕が作成、提出したコードは、以下のとおりです。

・問題 1: ソーシャルゲーム

algo-method.com

/*
C++による「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)の解答例
問題 1: ソーシャルゲーム
https://algo-method.com/tasks/393
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int a,b,c;
    cin>>a>>b>>c;
    int dayc=0,coinc=0;
    while(coinc<c){
        dayc++;
        coinc+=a;
        if(dayc%7==0){
            coinc+=b;
        }
    }
    cout<<dayc<<endl;
    return 0;
}
・問題 2: すごろくと駒

algo-method.com

/*
C++による「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)の解答例
問題 2: すごろくと駒
https://algo-method.com/tasks/394
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,m;
    cin>>n;
    vector<int> x(n),a(m),v(n);
    for(int i=0;i<n;i++){
        cin>>x[i];
        v[i]=x[i];
    }
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>a[i];
    }
    for(int i=0;i<m;i++){
        if((v[a[i]-1]+1!=v[a[i]]) && (v[a[i]-1]+1<=2019)){
            v[a[i]-1]++;
        }
    }
    for(int i=0;i<n;i++){
        cout<<v[i]<<endl;
    }
    return 0;
}
・問題 3: マルバツスタンプ

algo-method.com

/*
C++による「日本情報オリンピック (予選) 過去問」JOI 2018/2019 予選 (前半)の解答例
問題 3: マルバツスタンプ
https://algo-method.com/tasks/395
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int n;
  string s;
  cin>>n>>s;
  int cnt=0;
  for(int i=0;i<n-1;){
    string t=s.substr(i,2);
    if(t=="OX" || t=="XO"){
      cnt++;
      i+=2;
    }else{
      i+=1;
    }
  }
  cout<<cnt<<endl;
  return 0;
}

設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com

またAtCoder Problemsにも同じ問題が公開されています。

・A - ソーシャルゲーム (Social Game)

atcoder.jp

・B - すごろくと駒 (Sugoroku and Pieces)

atcoder.jp

・C - マルバツスタンプ (Circle Cross Stamps)

atcoder.jp