2013年11月2日 星期六

Codeforces Round #209 (Div. 2) D - Pair of Numbers


#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> vec,ans;
int s[1000005];
int main(){
    int n,ma=0,l,r,i,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&s[i]);
    for(i=1;i<=n;i++){
        for(j=i;j>=1;j--)
            if(s[j]%s[i]) break;
            else l=j;
        for(j=i;j<=n;j++)
            if(s[j]%s[i]) break;
            else r=j;
        if(r-l>ma){
            ma=r-l;
            vec.clear();
        }
        if(r-l==ma) vec.push_back(l);
        i=r;
    }
    sort(vec.begin(),vec.end());
    for(i=0;i<vec.size();i++)
        if(!i || vec[i]!=vec[i-1])
            ans.push_back(vec[i]);
    printf("%d %d\n",ans.size(),ma);
    for(i=0;i<ans.size();i++)
        printf("%d ",ans[i]);
    puts("");
}

沒有留言:

張貼留言