提交时间:2024-10-02 14:10:33
运行 ID: 32892
#include<bits/stdc++.h> using namespace std; long long n,a[2005],nmin; long long vis[2005],ji[2005]; void dfs(long long now,long long l,long long po,long long nmax,long long last){ if(now==l-1){ nmin=min(nmin,po); return; } if(last==-1 || nmax>a[last] || a[now]<nmax){ dfs(now-1,l,po+1,0,now); } else{ dfs(now-1,l,po+1,0,now); dfs(now-1,l,po,max(nmax,a[now]),last); } } int main(){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } long long sum=0; for(int i=1;i<=n;i++){ for(int j=i;j<=n;j++){ nmin=0x3f3f3f3f3f3f3f3f; if(i==j){ sum^=1; continue; } dfs(j,i,0,0,-1); printf("%lld %lld %lld\n",i,j,nmin); sum^=nmin; } } printf("%lld",sum); }