Submission #73430240


Source Code Expand

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

#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

// #define int long long

#define rep(i,n) for(int i=0;i<(n);i++)
#define rng(i,l,r) for(int i=(l);i<(r);i++)
#define rrep(i,n) for(int i=(n)-1;i>=0;i--)
#define rrng(i,l,r) for(int i=(r)-1;i>=(l);i--)
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define fi first
#define se second

struct fast_io{fast_io(){cin.tie(nullptr)->sync_with_stdio(false);}}_;
template<class T> bool chmax(T &a,T b){return (a<b)?a=b,1:0;}
template<class T> bool chmin(T &a,T b){return (a>b)?a=b,1:0;}

template<class T>using pqmin=priority_queue<T,vector<T>,greater<T>>;

vector<int> vidx[20][20];

signed main(){
	int N;cin>>N;
	vector<int> A(N);for(auto&&e:A)cin>>e,e--;

	int M=*max_element(all(A))+1;

	auto add=[&](int s,int x)->int {
		assert(!(s>>x&1));
		rrep(i,x){
			if(s>>i&1){
				s^=(1<<i);
				s^=(1<<x);
				return s;
			}
		}
		s^=(1<<x);
		return s;
	};

	vector<int> dp(1<<M,-1);
	dp[0]=0;

	rep(i,N-1){
		int u=A[i],v=A[i+1];
		if(u>v)swap(u,v);
		vidx[u][v].pb(i);
	}

	int ans=M;

	rep(S,1<<M){
		if(dp[S]==-1)continue;

		int r=N;

		rep(i,M){
			if(S>>i&1)continue;
			rng(j,i,M){
				if(S>>j&1)continue;
				auto it=lower_bound(all(vidx[i][j]),dp[S]);
				if(it==vidx[i][j].end())continue;
				chmin(r,*it);
				if(r==dp[S])break;
			}
			if(r==dp[S])break;
		}

		if(r==N)chmin<int>(ans,__builtin_popcount(S));
		else{
			chmax(dp[add(S,A[r])],r+1);
			chmax(dp[add(S,A[r+1])],r+2);
		}
	}

	cout<<ans<<"\n";
}

Submission Info

Submission Time
Task D - 長いだけのネクタイ 2 (Just Long Neckties 2)
User nouka28
Language C++23 (GCC 15.2.0)
Score 100
Code Size 1616 Byte
Status AC
Exec Time 2548 ms
Memory 64036 KiB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3 Subtask4 Subtask5 Subtask6 Subtask7
Score / Max Score 0 / 0 10 / 10 6 / 6 12 / 12 18 / 18 26 / 26 10 / 10 18 / 18
Status
AC × 3
AC × 33
AC × 17
AC × 37
AC × 61
AC × 81
AC × 124
AC × 148
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
Subtask1 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, sample-01.txt, sample-02.txt, sample-03.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-14.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-16.txt, 04-14.txt, 04-19.txt
Subtask2 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, sample-02.txt, 01-18.txt
Subtask3 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, sample-01.txt, sample-02.txt, 01-18.txt
Subtask4 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 04-13.txt, 04-14.txt, 04-15.txt, 04-16.txt, 04-17.txt, 04-18.txt, 04-19.txt, 04-20.txt, sample-01.txt, sample-02.txt, sample-03.txt, 01-08.txt, 01-10.txt, 01-12.txt, 01-18.txt
Subtask5 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 04-13.txt, 04-14.txt, 04-15.txt, 04-16.txt, 04-17.txt, 04-18.txt, 04-19.txt, 04-20.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, sample-01.txt, sample-02.txt, sample-03.txt, 01-08.txt, 01-10.txt, 01-12.txt, 01-18.txt
Subtask6 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 04-13.txt, 04-14.txt, 04-15.txt, 04-16.txt, 04-17.txt, 04-18.txt, 04-19.txt, 04-20.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 06-11.txt, 06-12.txt, 06-13.txt, 06-14.txt, 06-15.txt, 06-16.txt, 06-17.txt, 06-18.txt, 06-19.txt, 06-20.txt, 06-21.txt, 06-22.txt, 06-23.txt, 06-24.txt, 06-25.txt, 06-26.txt, 06-27.txt, 06-28.txt, 06-29.txt, sample-01.txt, sample-02.txt, sample-03.txt
Subtask7 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 04-13.txt, 04-14.txt, 04-15.txt, 04-16.txt, 04-17.txt, 04-18.txt, 04-19.txt, 04-20.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 06-11.txt, 06-12.txt, 06-13.txt, 06-14.txt, 06-15.txt, 06-16.txt, 06-17.txt, 06-18.txt, 06-19.txt, 06-20.txt, 06-21.txt, 06-22.txt, 06-23.txt, 06-24.txt, 06-25.txt, 06-26.txt, 06-27.txt, 06-28.txt, 06-29.txt, 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, 07-11.txt, 07-12.txt, 07-13.txt, 07-14.txt, 07-15.txt, 07-16.txt, 07-17.txt, 07-18.txt, 07-19.txt, 07-20.txt, 07-21.txt, 07-22.txt, 07-23.txt, 07-24.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 4 ms 7388 KiB
01-02.txt AC 3 ms 7528 KiB
01-03.txt AC 1 ms 4372 KiB
01-04.txt AC 3 ms 7444 KiB
01-05.txt AC 5 ms 11612 KiB
01-06.txt AC 5 ms 11612 KiB
01-07.txt AC 5 ms 11596 KiB
01-08.txt AC 1 ms 3796 KiB
01-09.txt AC 1 ms 3956 KiB
01-10.txt AC 1 ms 3844 KiB
01-11.txt AC 6 ms 11636 KiB
01-12.txt AC 1 ms 3592 KiB
01-13.txt AC 5 ms 11612 KiB
01-14.txt AC 5 ms 11616 KiB
01-15.txt AC 5 ms 11548 KiB
01-16.txt AC 5 ms 11524 KiB
01-17.txt AC 3 ms 7468 KiB
01-18.txt AC 1 ms 3704 KiB
02-01.txt AC 1 ms 3668 KiB
02-02.txt AC 1 ms 3504 KiB
02-03.txt AC 1 ms 3696 KiB
02-04.txt AC 1 ms 3556 KiB
02-05.txt AC 1 ms 3564 KiB
02-06.txt AC 1 ms 3676 KiB
02-07.txt AC 1 ms 3704 KiB
02-08.txt AC 1 ms 3632 KiB
02-09.txt AC 1 ms 3564 KiB
02-10.txt AC 1 ms 3712 KiB
02-11.txt AC 1 ms 3712 KiB
02-12.txt AC 1 ms 3592 KiB
02-13.txt AC 1 ms 3632 KiB
02-14.txt AC 1 ms 3556 KiB
02-15.txt AC 1 ms 3564 KiB
03-01.txt AC 1 ms 3552 KiB
03-02.txt AC 1 ms 3480 KiB
03-03.txt AC 1 ms 3516 KiB
03-04.txt AC 1 ms 3632 KiB
03-05.txt AC 1 ms 3548 KiB
03-06.txt AC 1 ms 3460 KiB
03-07.txt AC 1 ms 3548 KiB
03-08.txt AC 1 ms 3516 KiB
03-09.txt AC 1 ms 3548 KiB
03-10.txt AC 1 ms 3516 KiB
03-11.txt AC 1 ms 3716 KiB
03-12.txt AC 1 ms 3632 KiB
03-13.txt AC 1 ms 3552 KiB
03-14.txt AC 1 ms 3548 KiB
03-15.txt AC 1 ms 3552 KiB
03-16.txt AC 1 ms 3548 KiB
03-17.txt AC 1 ms 3556 KiB
03-18.txt AC 1 ms 3584 KiB
03-19.txt AC 1 ms 3504 KiB
04-01.txt AC 4 ms 3684 KiB
04-02.txt AC 3 ms 3824 KiB
04-03.txt AC 1 ms 3756 KiB
04-04.txt AC 1 ms 3712 KiB
04-05.txt AC 5 ms 3676 KiB
04-06.txt AC 4 ms 3680 KiB
04-07.txt AC 3 ms 3676 KiB
04-08.txt AC 5 ms 3656 KiB
04-09.txt AC 3 ms 3712 KiB
04-10.txt AC 1 ms 3844 KiB
04-11.txt AC 3 ms 3632 KiB
04-12.txt AC 1 ms 3840 KiB
04-13.txt AC 1 ms 3680 KiB
04-14.txt AC 1 ms 3796 KiB
04-15.txt AC 1 ms 3840 KiB
04-16.txt AC 1 ms 3712 KiB
04-17.txt AC 1 ms 3688 KiB
04-18.txt AC 1 ms 3840 KiB
04-19.txt AC 1 ms 3692 KiB
04-20.txt AC 1 ms 3680 KiB
05-01.txt AC 18 ms 8796 KiB
05-02.txt AC 19 ms 8820 KiB
05-03.txt AC 14 ms 8040 KiB
05-04.txt AC 15 ms 8348 KiB
05-05.txt AC 17 ms 8028 KiB
05-06.txt AC 21 ms 8028 KiB
05-07.txt AC 31 ms 8708 KiB
05-08.txt AC 33 ms 8660 KiB
05-09.txt AC 28 ms 8532 KiB
05-10.txt AC 14 ms 7960 KiB
05-11.txt AC 18 ms 8484 KiB
05-12.txt AC 16 ms 8380 KiB
05-13.txt AC 18 ms 7892 KiB
05-14.txt AC 14 ms 7620 KiB
05-15.txt AC 14 ms 7784 KiB
05-16.txt AC 14 ms 7648 KiB
05-17.txt AC 32 ms 8728 KiB
05-18.txt AC 31 ms 8724 KiB
05-19.txt AC 15 ms 7672 KiB
05-20.txt AC 15 ms 7704 KiB
06-01.txt AC 198 ms 17116 KiB
06-02.txt AC 277 ms 17092 KiB
06-03.txt AC 19 ms 15956 KiB
06-04.txt AC 21 ms 16952 KiB
06-05.txt AC 169 ms 16148 KiB
06-06.txt AC 633 ms 16076 KiB
06-07.txt AC 1629 ms 16724 KiB
06-08.txt AC 2029 ms 16788 KiB
06-09.txt AC 1202 ms 17044 KiB
06-10.txt AC 1787 ms 17116 KiB
06-11.txt AC 1753 ms 16916 KiB
06-12.txt AC 1749 ms 16900 KiB
06-13.txt AC 19 ms 16092 KiB
06-14.txt AC 148 ms 16124 KiB
06-15.txt AC 196 ms 16152 KiB
06-16.txt AC 148 ms 16144 KiB
06-17.txt AC 6 ms 11484 KiB
06-18.txt AC 10 ms 11540 KiB
06-19.txt AC 5 ms 11476 KiB
06-20.txt AC 5 ms 11548 KiB
06-21.txt AC 18 ms 15708 KiB
06-22.txt AC 18 ms 15836 KiB
06-23.txt AC 18 ms 15804 KiB
06-24.txt AC 27 ms 15724 KiB
06-25.txt AC 23 ms 15744 KiB
06-26.txt AC 24 ms 16080 KiB
06-27.txt AC 31 ms 15892 KiB
06-28.txt AC 31 ms 15680 KiB
06-29.txt AC 30 ms 15684 KiB
07-01.txt AC 434 ms 57500 KiB
07-02.txt AC 383 ms 57844 KiB
07-03.txt AC 140 ms 57568 KiB
07-04.txt AC 149 ms 54932 KiB
07-05.txt AC 297 ms 56604 KiB
07-06.txt AC 996 ms 55380 KiB
07-07.txt AC 2135 ms 55064 KiB
07-08.txt AC 2548 ms 54748 KiB
07-09.txt AC 1569 ms 54868 KiB
07-10.txt AC 140 ms 55300 KiB
07-11.txt AC 302 ms 55000 KiB
07-12.txt AC 324 ms 53968 KiB
07-13.txt AC 171 ms 52700 KiB
07-14.txt AC 138 ms 51280 KiB
07-15.txt AC 137 ms 51156 KiB
07-16.txt AC 148 ms 64012 KiB
07-17.txt AC 2436 ms 55400 KiB
07-18.txt AC 2260 ms 55388 KiB
07-19.txt AC 161 ms 64024 KiB
07-20.txt AC 161 ms 64012 KiB
07-21.txt AC 174 ms 57664 KiB
07-22.txt AC 161 ms 64036 KiB
07-23.txt AC 160 ms 63972 KiB
07-24.txt AC 176 ms 59840 KiB
sample-01.txt AC 1 ms 3668 KiB
sample-02.txt AC 1 ms 3552 KiB
sample-03.txt AC 1 ms 3712 KiB