0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ABC066 ARC077 の問題を解いてみました

Posted at

A問題

安いベル2つを購入すれば良いです。

#include <bits/stdc++.h>
using namespace std; using ll = long long;
//Created by karaju.

signed main(void){
  vector<int> bell(3);
  for(int i = 0; i < 3; i++) cin >> bell[i];
  sort(bell.begin(), bell.end());
  
  cout << bell[0] + bell[1] << endl;
}
別解
#include <bits/stdc++.h>
using namespace std; using ll = long long;
//Created by karaju.

signed main(void){
  int a, b, c;
  cin >> a >> b >> c;
  
  cout << (a + b + c) - max({a, b, c}) << endl;
  //合計から最も高いベルの価格を引く
}

B問題

pop_back()で末尾の文字を消して、判定することを繰り返しましょう。

#include <bits/stdc++.h>
using namespace std; using ll = long long;
//Created by karaju.

signed main(void){
  int n;
  string s;
  cin >> s;
  n = s.length(); //sの長さを保存しておく
  
  for(int i = 1; i <= n; i++){
    s.pop_back();
    
    int m = n - i; //今の文字列の長さ
    if(m % 2 == 1) continue; //長さが奇数の場合は、偶文字列ではない
    
    if(s.substr(0, m / 2) == s.substr(m / 2, m / 2)){ //判定
      cout << m << endl;
      return 0;
    }
  }
}

C問題

毎回$b$を並び替えていると時間がかかってしまうので、$b$が反転しているかを記録しておいて、もし反転しているなら後ろから出力するという処理をできるようにしたいです。

しかし、それでは1の処理のときにおかしくなってしまいます。
そこで1の処理にどのように対応するか考えます。
すると、$b$が反転しているとき、末尾に加えるという操作は、先頭に加えるという操作で対応できることがわかります。

それを実装しましょう。

#include <bits/stdc++.h>
using namespace std; using ll = long long;
//Created by karaju.

signed main(void){
  int n;
  cin >> n;
  vector<int> a(n);
  for(int i = 0; i < n; i++) cin >> a[i];
  
  deque<int> b;
  bool rev = false; //反転しているか記録するbool型
  
  for(int i = 0; i < n; i++){
    if(!rev){ //反転していない
      b.push_back(a[i]);
    }
    else{ //反転している
      b.push_front(a[i]);
    }
    
    rev = !rev; //反転させる
  }
  
  if(!rev){
    for(int i = 0; i < n; i++){
      cout << b[i] << " ";
    }
  }
  else{
    for(int i = n - 1; i >= 0; i--){
      cout << b[i] << " ";
    }
  }
}

D問題

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?