div2签到题
大概是切点问题嘛
1是圆
2是三角
3是正方形
那不就穷举一下点不就出来了吗
12是3
13是4
32是3
31是4
其他的两种情况就是无穷点了
中间因为Infinite少写了一个e还wa了
更新
昨天的那个rejudge还是wa了
究其缘由还是312的时候会重复一个点
因此最后减去这种情况就好了
以下是通过代码
#include<bits/stdc++.h>
using namespace std;
int a[1000];
int change(int x,int y){
if(x==1&&y==2){
return 3;
}
if(x==1&&y==3){
return 4;
}
if(x==2&&y==1){
return 3;
}
if(x==3&&y==1){
return 4;
}
return -1000000000;
}
int main(){
int n,ans=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n-1;i++){
ans+=change(a[i],a[i+1]);
if(ans<0){
cout<<"Infinite";
return 0;
}
}
if(n>=3)
for(int i=0;i<n-2;i++){
if(a[i]==3&&a[i+1]==1&&a[i+2]==2){
ans--;
}
}
cout<<"Finite"<<endl<<ans;
return 0;
}