提交时间:2024-06-26 11:58:06

运行 ID: 49174

#include<bits/stdc++.h> using namespace std; bool zhi(long long int x,long long int y) { for(int i=2;i<=min(x,y);i++) { if(x%i==0&&y%i==0) return true; } return false; } int main() { int n; long long int arr[100005]={},sum=0,ans=0,cnt=1; cin>>n; for(int i=1;i<=n;i++) cin>>arr[i]; if(n<=2) { cout<<1; return 0; } for(int i=2;i<=n;i++) { cnt=i; sum=max(arr[i],arr[i-1])-min(arr[i],arr[i-1]); if(sum<2) ans++; else break; } for(int i=cnt+1;i<=n;i++) { long long int sum2=max(arr[i],arr[i-1])-min(arr[i],arr[i-1]); if(!zhi(sum,sum2)) { if(i==n) ans++; ans++; for(int j=i+1;j<=n;j++) { cnt=j; sum=max(arr[j],arr[j-1])-min(arr[j],arr[j-1]); if(sum<2) ans++; else break; } } else if(i==n&&zhi(sum,sum2)) ans++; } cout<<ans; return 0; }