結果
| 問題 | No.3048 Swing | 
| コンテスト | |
| ユーザー |  とりゐ | 
| 提出日時 | 2025-03-07 22:53:43 | 
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 1,901 bytes | 
| コンパイル時間 | 3,484 ms | 
| コンパイル使用メモリ | 273,616 KB | 
| 実行使用メモリ | 8,608 KB | 
| 最終ジャッジ日時 | 2025-03-07 22:54:16 | 
| 合計ジャッジ時間 | 32,128 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 55 WA * 3 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define elif else if
#define vi vector<int>
#define vll vector<ll>
#define vvi vector<vi>
#define pii pair<int, int>
#define repname(a, b, c, d, e, ...) e
#define rep(...) repname(__VA_ARGS__, rep3, rep2, rep1, rep0)(__VA_ARGS__)
#define rep0(x) for (int rep_counter = 0; rep_counter < (x); ++rep_counter)
#define rep1(i, x) for (int i = 0; i < (x); ++i)
#define rep2(i, l, r) for (int i = (l); i < (r); ++i)
#define rep3(i, l, r, c) for (int i = (l); i < (r); i += (c))
struct ScalarInput
{
  template <class T>
  operator T()
  {
    T ret;
    cin >> ret;
    return ret;
  }
};
struct VectorInput
{
  size_t n;
  VectorInput(size_t n) : n(n) {}
  template <class T>
  operator vector<T>()
  {
    vector<T> ret(n);
    for (T &x : ret)
      cin >> x;
    return ret;
  }
};
ScalarInput input() { return ScalarInput(); }
VectorInput input(size_t n) { return VectorInput(n); }
template <typename T>
void print(vector<T> a)
{
  for (int i = 0; i < a.size(); i++)
  {
    cout << a[i] << " \n"[i + 1 == a.size()];
  }
}
template <class T>
void print(T x)
{
  cout << x << '\n';
}
template <class Head, class... Tail>
void print(Head &&head, Tail &&...tail)
{
  cout << head << ' ';
  print(forward<Tail>(tail)...);
}
double stop_watch(struct timespec start_time)
{
  // 経過時間を秒単位で返す.
  struct timespec end_time;
  clock_gettime(CLOCK_REALTIME, &end_time);
  long long int sec = end_time.tv_sec - start_time.tv_sec;
  long long int nsec = end_time.tv_nsec - start_time.tv_nsec;
  return (double)sec + (double)nsec / (1000 * 1000 * 1000);
}
int main()
{
  ll x, n;
  cin >> x >> n;
  ll i = 1;
  while (i <= n && !(-i <= x && x < 0))
  {
    if (x < 0)
      x += i;
    else
      x -= i;
    i++;
  }
  i--;
  ll rem = (n - i) / 2;
  x -= rem;
  if ((n & 1) != (i & 1))
    x += n;
  cout << x << endl;
}
            
            
            
        