結果

問題 No.232 めぐるはめぐる (2)
ユーザー edamame882edamame882
提出日時 2019-07-26 01:24:21
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 2,582 bytes
コンパイル時間 1,647 ms
コンパイル使用メモリ 168,896 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-07-02 06:21:26
合計ジャッジ時間 3,874 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19 WA * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

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

//repetition
#define FOR(i,a,b) for(ll i=(a);i<(b);++i)
#define rep(i, n) for(ll i = 0; i < (ll)(n); i++)

//container util
#define all(x) (x).begin(),(x).end()

//typedef
typedef long long ll;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VLL;
typedef vector<VLL> VVLL;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef pair<ll, ll> PLL;

//const value
//const ll MOD = 1e9 + 7;
//const int dx[] = {0,1,0,-1};//{0,0,1,1,1,-1,-1,-1};
//const int dy[] = {1,0,-1,0};//{1,-1,0,1,-1,0,1,-1};

//conversion
inline int toInt(string s) {int v; istringstream sin(s);sin>>v;return v;}
inline ll toLL(string s) {ll v; istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}


int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);
  ll t,a,b;
  cin >> t >> a >> b;
  if(t < max(a,b) ){
    cout << "NO" << endl;
    return 0;
  }
  // 最小移動回数
  int diff = t - max(a,b);
  if(diff % 2 == 0){
    // このまま時間稼ぎする
    cout << "YES" << "\n";
    int cnt = min(a,b);
    rep(i,cnt){
      cout << "^>" << endl;
      a--;
      b--;
      // cout << "hi" << endl;
    }
    // cout << "a,b " << a << "," << b << endl;
    while(a>0){cout << "^" << endl;a--;}
    while(b>0){cout << ">" << endl;b--;}

    rep(i,diff/2){
      cout << ">" << endl;
      cout << "<" << endl;
    }
    return 0;
  }else{
    // 斜め移動の回数を1回減らす -> 移動回数が一回増える
    if(a > 0 && b > 0 && diff - 1 >= 0){
      cout << "YES" << "\n";
      cout << ">" << endl;
      cout << "^" << endl;
      a--,b--;
      int cnt = min(a,b);

      rep(i,cnt){
        cout << "^>" << endl;
        a--;
        b--;
      }

      while(a>0){cout << "^" << endl; a--;}
      while(b>0){cout << ">" << endl; b--;}

      rep(i,(diff-1)/2){
        cout << ">" << endl;
        cout << "<" << endl;
      }
    }else if(a > 0 && diff - 1 > 0){
      cout << "YES" << "\n";
      cout << "^>" << endl;
      cout << "<" << endl;
      a--;
      while(a>0){cout << "^" << endl; a--;}
      rep(i,(diff-1)/2){
        cout << ">" << endl;
        cout << "<" << endl;
      }
    }else if(b > 0 && diff - 1 > 0){
      cout << "YES" << "\n";
      cout << "^>" << endl;
      cout << "v" << endl;
      b--;
      while(b>0){cout << ">" << endl; b--;}
      rep(i,(diff-1)/2){
        cout << ">" << endl;
        cout << "<" << endl;
      }
    }else{
      cout << "NO" << "\n";
    }
  }
  return 0;
}
0