CF359D:Pair of Numbers(数论)
2017-03-01 14:52
274 查看
reference:WannaflyUnion Wechat
D. Pair of Numbers
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Simon has an array a1, a2, ..., an,
consisting of n positive integers. Today Simon asked you to find a pair of integers l, r (1 ≤ l ≤ r ≤ n),
such that the following conditions hold:
there is integer j (l ≤ j ≤ r),
such that all integers al, al + 1, ..., ar are
divisible by aj;
value r - l takes the maximum value among all pairs for which condition 1 is
true;
Help Simon, find the required pair of numbers (l, r). If there are multiple required pairs find all of them.
Input
The first line contains integer n (1 ≤ n ≤ 3·105).
The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 106).
Output
Print two integers in the first line — the number of required pairs and the maximum value of r - l. On the following line
print all l values from optimal pairs in increasing order.
Examples
input
output
input
output
input
output
Note
In the first sample the pair of numbers is right, as numbers 6, 9, 3 are divisible by 3.
In the second sample all numbers are divisible by number 1.
In the third sample all numbers are prime, so conditions 1 and 2 are
true only for pairs of numbers (1, 1), (2, 2), (3, 3), (4, 4), (5, 5).
题意:给定一个数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间内每一个元素。
思路:从数组第一个元素开始向两边延伸,如右边延伸到r,下一轮从r+1开始考虑即可。
D. Pair of Numbers
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Simon has an array a1, a2, ..., an,
consisting of n positive integers. Today Simon asked you to find a pair of integers l, r (1 ≤ l ≤ r ≤ n),
such that the following conditions hold:
there is integer j (l ≤ j ≤ r),
such that all integers al, al + 1, ..., ar are
divisible by aj;
value r - l takes the maximum value among all pairs for which condition 1 is
true;
Help Simon, find the required pair of numbers (l, r). If there are multiple required pairs find all of them.
Input
The first line contains integer n (1 ≤ n ≤ 3·105).
The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 106).
Output
Print two integers in the first line — the number of required pairs and the maximum value of r - l. On the following line
print all l values from optimal pairs in increasing order.
Examples
input
5 4 6 9 3 6
output
1 3 2
input
5 1 3 5 7 9
output
1 4 1
input
5 2 3 5 7 11
output
5 0 1 2 3 4 5
Note
In the first sample the pair of numbers is right, as numbers 6, 9, 3 are divisible by 3.
In the second sample all numbers are divisible by number 1.
In the third sample all numbers are prime, so conditions 1 and 2 are
true only for pairs of numbers (1, 1), (2, 2), (3, 3), (4, 4), (5, 5).
题意:给定一个数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间内每一个元素。
思路:从数组第一个元素开始向两边延伸,如右边延伸到r,下一轮从r+1开始考虑即可。
# include <iostream> # include <cstdio> # include <cstring> # include <cmath> # include <vector> # include <algorithm> # define INF 0x3f3f3f3f using namespace std; const int MAXN = 3e5; int a[MAXN+3]={0}; int main() { vector<int>v; int n, ans; while(~scanf("%d",&n)) { bool flag = false; ans = -INF; for(int i=1; i<=n; ++i) scanf("%d",&a[i]); for(int i=1; i<=n; ++i) { if(a[i]==1) { flag = true; printf("1 %d\n1\n",n-1); break; } int j, k; for(j=i; j-1>0&&a[j-1]%a[i]==0; --j); for(k=i; k+1<=n&&a[k+1]%a[i]==0; ++k); if(k-j > ans) { ans = k-j; v.clear(); } if(k-j == ans) v.push_back(j); i = k; } if(!flag) { printf("%d %d\n",v.size(), ans); for(int i=0; i<v.size()-1; ++i) printf("%d ",v[i]); printf("%d\n",v[v.size()-1]); } } return 0; }
相关文章推荐
- CF359D:Pair of Numbers(数论)
- CF359D:Pair of Numbers(数论)
- CF359D:Pair of Numbers(数论)
- CF359D:Pair of Numbers(数论)
- CF359D:Pair of Numbers——题解
- Codeforces 395 D.Pair of Numbers
- UVA 1210 Sum of Consecutive Prime Numbers(数论)
- Codefoces 359 D Pair of Numbers
- Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.
- ACM 数论 hdu 1492 The number of divisors(约数) about Humble Numbers
- Pair of Numbers
- Codeforces 359D - Pair of Numbers
- hdoj 1492 The number of divisors(约数) about Humble Numbers 【数论】【质因子分解 求和】
- CodeForces 3107 ODDDIV - Odd Numbers of Divisors(数论)
- Codeforces 209 div2 D. Pair of Numbers
- POJ 2739 Sum of Consecutive Prime Numbers-数论-(连续素数和)
- Codeforces Round #209 (Div. 2) D.Pair of Numbers
- Pair of Numbers
- Codeforces Round #209 (Div. 2) D - Pair of Numbers
- #CF 359 D Pair of Numbers(dp)