import sys
import math
CIRCLE = 1
TRIANGLE = 2
SQUARE = 3
n = int(sys.stdin.readline().strip())
arr = sys.stdin.readline().split()
arr = [int(e) for e in arr]
total = 0
isInfinite = False
for i in range(1,n):
if arr[i] == SQUARE and arr[i-1] == TRIANGLE:
isInfinite = True
break
if arr[i] == SQUARE and arr[i-1] == CIRCLE:
total += 4
if arr[i] == CIRCLE and arr[i-1] == TRIANGLE:
total += 3
if arr[i] == CIRCLE and arr[i-1] == SQUARE:
total += 4
if arr[i] == TRIANGLE and arr[i-1] == SQUARE:
isInfinite = True
break
if arr[i] == TRIANGLE and arr[i-1] == CIRCLE:
if i > 1 and arr[i-2] == SQUARE:
total += 2
else:
total += 3
if isInfinite:
print("Infinite")
else:
print("Finite")
print(total)
#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n;
cin>>n;
vector<int> a(n);
bool flag=0;
int ans=0;
for(int i=0;i<n;i++){
cin>>a[i];
if(i>0){
if(min(a[i-1],a[i])==2 && max(a[i],a[i-1])==3){
flag=1;
}
else if(min(a[i-1],a[i])==1 && max(a[i],a[i-1])==2){
ans+=3;
}
else if(min(a[i-1],a[i])==1 && max(a[i],a[i-1])==3){
ans+=4;
}
}
if(i>1){
if(a[i-2]==3 && a[i-1]==1 && a[i]==2){
ans--;
}
}
}
if(flag)cout<<"Infinite\n";
else{
cout<<"Finite\n";
cout<<ans<<endl;
}
return 0;
}
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |
445. Add Two Numbers II | 442. Find All Duplicates in an Array |
437. Path Sum III | 436. Find Right Interval |
435. Non-overlapping Intervals | 406. Queue Reconstruction by Height |
380. Insert Delete GetRandom O(1) | 332. Reconstruct Itinerary |
368. Largest Divisible Subset | 377. Combination Sum IV |
322. Coin Change | 307. Range Sum Query - Mutable |
287. Find the Duplicate Number | 279. Perfect Squares |
275. H-Index II | 274. H-Index |
260. Single Number III | 240. Search a 2D Matrix II |
238. Product of Array Except Self | 229. Majority Element II |
222. Count Complete Tree Nodes | 215. Kth Largest Element in an Array |
198. House Robber | 153. Find Minimum in Rotated Sorted Array |