結果

問題 No.411 昇順昇順ソート
ユーザー nenuon
提出日時 2017-07-01 12:01:02
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 449 ms / 2,000 ms
コード長 755 bytes
コンパイル時間 964 ms
コンパイル使用メモリ 95,248 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-10-05 03:26:31
合計ジャッジ時間 4,509 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <algorithm>
#include <cstdio>
#include <iostream>
#include <map>
#include <cmath>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
#include <bitset>
using namespace std;
#define FOR(I,A,B) for(int I = (A); I < (B); ++I)
typedef long long ll;
// 解説みた
// 2グループに分ける
int main(){
  int N, K;
  cin >> N >> K;
  ll ans = 0;
  FOR(i,1,(1<<N)-1){
    vector<int> r, l;
    FOR(j,0,N){
      if((i>>j)&1){
        l.push_back(j+1);
      } else {
        r.push_back(j+1);
      }
    }
    sort(r.begin(), r.end());
    sort(l.begin(), l.end());
    if(l[0] == K && l[l.size()-1] > r[0]) ans++;
  }
  cout << ans << endl;
  return 0;
}
0