結果

問題 No.1707 Simple Range Reverse Problem
ユーザー tko919tko919
提出日時 2021-10-16 00:19:01
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 4 ms / 2,000 ms
コード長 1,002 bytes
コンパイル時間 3,162 ms
コンパイル使用メモリ 193,448 KB
最終ジャッジ日時 2025-01-25 01:25:20
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 18
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:37:17: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   37 |     int t; scanf("%d",&t);
      |            ~~~~~^~~~~~~~~

ソースコード

diff #

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

//template
#define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define ALL(v) (v).begin(),(v).end()
using ll=long long int;
const int inf = 0x3fffffff; const ll INF = 0x1fffffffffffffff; const double eps=1e-12;
template<typename T>inline bool chmax(T& a,T b){if(a<b){a=b;return 1;}return 0;}
template<typename T>inline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;}

void solve(int _rot){
    // printf("Case #%d: ",_rot);
    int n;
    cin>>n;
    vector<int> a(n*2);
    rep(i,0,n*2)cin>>a[i];

    rep(i,0,n)if(a[i]!=i+1 or a[i+n]!=i+1)goto fail2;
    puts("Yes");
    return;
    fail2:;

    rep(i,0,n){
        reverse(a.begin()+i+1,a.begin()+i+n);
        rep(i,0,n)if(a[i]!=i+1 or a[i+n]!=i+1)goto fail;
        puts("Yes");
        return;
        fail:;
        reverse(a.begin()+i+1,a.begin()+i+n);
    }
    puts("No");
}

int main(){
    int t; scanf("%d",&t);
    rep(rot,0,t)solve(rot+1);
    return 0;
}
0