竞赛讨论区 > 求助贴,I题为啥这样写就错了呀
头像
Grape2580
编辑于 04-28 13:08
+ 关注

求助贴,I题为啥这样写就错了呀

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
typedef pair<int,int> P;
const int maxn=1e5+10;
int a[maxn];
int n;
int Left[maxn],Right[maxn];
void solve(){
//     memset(Left,0,sizeof Left);
//     memset(Right,0,sizeof Right);
    scanf("%d",&n);
    for(int i=0;i<n;++i){
        scanf("%d",&a[i]);
    }
//     int l=0,r;
//     while(l<n){
//         for(r=l+1;r<n;++r){
//             if(a[r]>=a[l]&&a[r]%a[l]==0){
//                 Right[l]++;
//             }else{
//                 l=r;
//                 break;
//             }
//         }
//         if(r==n){
//             break;
//         }
       
//     }
//     r=n-1;
//     while(r>=0){
//         for(l=r-1;l>=0;--l){
//             if(a[l]>=a[r]&&a[l]%a[r]==0){
//                 Left[r]++;
//             }else{
//                 r=l;
//                 break;
//             }
//         }
//         if(l==-1){
//             break;
//         } 
//     }
    
    int ans=1;
    for(int i=0;i<n;++i){
//         cout<<Left[i]<<" "<<Right[i]<<endl;
        int cnt=1;
        int l,r;
       for(r=i+1;r<n;++r){
           if(a[r]>=a[i]&&a[r]%a[i]==0){
               cnt++;
           }else break;
       }
        for(l=i-1;l>=0;--l){
           if(a[l]>=a[i]&&a[l]%a[i]==0){
               cnt++;
           }else break;
       }
//         cout<<l<<" "<<r<<endl;
        i=r-1;
       ans=max(ans,cnt);
    }
    printf("%d\n",ans);
}
int main(){
	int T=1;
// 	scanf("%d",&T);
	while(T--){
		solve();
	}
	return 0;
}

全部评论

(1) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐