寝癖頭の解法

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

JOI 2021/2022 一次予選(第1回) 競技結果

JOI 2021/2022 一次予選(第1回)から、その競技結果です。
日本情報オリンピック - Wikipedia
>日本情報オリンピック(Japanese Olympiad in Infomatics 通称JOI)は、日本の中高生の情報科学的な能力の育成と、国際情報オリンピックに派遣する日本代表選手の選抜を目的とした大会である。
>1994〜1997年に実施され、中断の後2005年から科学技術振興機構の助成を受けて再開されている。
>科学オリンピックの1つである。
www.ioi-jp.org
>日本情報オリンピックは、数理情報科学の能力を競う競技会です。
>競技では、与えられた課題に対する性能の良いアルゴリズムを設計し、さらに、それをプログラムとして適切に実装することが求められます。

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

JOI 2021/2022 一次予選(第1回)
・問題1 余り

JOI 2021/2022 一次予選(第1回) 問題1

/*
JOI 2021/2022 一次予選(第1回)
問題1 余り
https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t1.html
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int x;
  cin>>x;
  cout<<x%21<<endl;
  return 0;
}
・問題2 移動

JOI 2021/2022 一次予選(第1回) 問題2

/*
JOI 2021/2022 一次予選(第1回)
問題2 移動
https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t2.html
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int x,y,z;
  cin>>x>>y>>z;
  int xy=(x+y)*60;
  int zm=z*60+30;
  if(xy<=zm){
    cout<<1<<endl;
  }else{
    cout<<0<<endl;
  }
  return 0;
}
・問題3 複雑な文字列

JOI 2021/2022 一次予選(第1回) 問題3

/*
JOI 2021/2022 一次予選(第1回)
問題3 複雑な文字列
https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t3.html
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int n;
  cin>>n;
  vector<char> s(n);
  for(int i=0;i<n;i++){
    cin>>s[i];
  }
  sort(s.begin(),s.end());
  s.erase(unique(s.begin(),s.end()),s.end());
  if(s.size()-0>=3){
    cout<<"Yes"<<endl;
  }else{
    cout<<"No"<<endl;
  }
  return 0;
}
・問題4 箱と鍵

JOI 2021/2022 一次予選(第1回) 問題4

/*
JOI 2021/2022 一次予選(第1回)
問題4 箱と鍵
https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t4.html
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int n,m;
  cin>>n>>m;
  vector<int> a(n),b(m);
  for(int i=0;i<n;i++){
    cin>>a[i];
  }
  for(int i=0;i<m;i++){
    cin>>b[i];
  }
  sort(a.begin(),a.end());
  sort(b.begin(),b.end());
  b.erase(unique(b.begin(),b.end()),b.end());
  int cnt=0;
  for(int i=0;i<n;i++){
    for(int j=0;j<b.size();j++){
      if(a[i]==b[j]){
        cnt++;
        break;
      }
    }
  }
  cout<<cnt<<endl;
  return 0;
}
JOI 2021/2022 一次予選(第1回) 競技結果

f:id:neguse_atama:20211019070420p:plain
AOJ(Aizu Online Judge)の過去問で知って、よく読んでみたら、小学生でも出場できるみたいだったので、やってみました。
で、無事に二次予選にも出場できるようになりました。
科学オリンピックの中には、数学オリンピックもあるらしくて、本当はそっちの方に出場したかったなーって思っています、ひそかに。
元々は、数学から競技プログラミングをやるようになったから、まぁ、普通に数学で出場したかったって話です、僕の場合。
でも、数学オリンピックは、出場するために受験料が必要らしくて、申し込みも親に頼らないとできないから、仕方がありません。
ちな、情報オリンピックは無料で出場できて、申し込みもオンラインで簡単でした。
情報オリンピックさん、ありがとうございます!
こうゆうのに出場するのが初めてだから、出場できるってだけで嬉しかったし、めっちゃ楽しいです!
本当に、ありがとうございます!