blank page

プログラミングなどについて書きます

AtCoder Regular Contest 082 & AtCoder Beginner Contest 072

ABC全完したので一応報告

初めてABC全完したので適当にコードを書いておこうと思います.

A

A - Sandglass2

やる

#include <iostream>
using namespace std;

int main()
{
  int x, t;

  cin >> x >> t;
  if (x - t <= 0) {
    cout << 0 << endl;
  } else {
    cout << x - t << endl;
  }

  return (0);
}

B

B - OddString

やる.

#include <iostream>
#include <string>
using namespace std;

int main()
{
  string s;
  
  cin >> s;
  for (int i = 0; i < s.size(); i++) {

    if (i % 2 == 0) {
      cout << s[i];
    }
  }
  cout << endl;

  return (0);
}

C

C - Together

割と時間かかった. 思いついたら簡単だった.

#include <bits/stdc++.h>
using namespace std;

int res[100005];

int main()
{
  int n;
  cin >> n;

  for (int i = 0; i < n; i++) {
    int tmp;
    cin >> tmp;

    res[tmp]++;
    res[tmp + 1]++;
    res[tmp - 1]++;
  }

  int max = -100;
  for (int i = 0; i < 100005; i++) {
    if (max < res[i]) {
      max = res[i];
    }
  }

  cout << max << endl;

  return (0);
}

maxを変数にするのはまずいですね…反省…(´・ω・`)

D

D - Derangement

簡単でした.

#include <bits/stdc++.h>
using namespace std;

int main()
{
  int n;
  cin >> n;
  vector<int> p(n);
  int cnt = 0;

  for (int i = 0; i < n; i++) {
    cin >> p[i];
  }

  for (int i = 0; i < n; i++) {
    if (p[i] == i + 1) {
      if (i != n - 1) {
        swap(p[i], p[i + 1]);
        cnt++;
      }
      else {
        swap(p[i], p[i - 1]);
        cnt++;
      }
    }
  }

  cout << cnt << endl;

  return (0);
}