Codeforces 872C Maximum splitting【思维】
2017-10-18 11:58
323 查看
C. Maximum splitting
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given several queries. In the i-th query you are given a single positive integer ni.
You are to represent ni as
a sum of maximum possible number of composite summands and print this maximum number, or print -1, if there are no such splittings.
An integer greater than 1 is composite, if it is not prime, i.e. if it has positive divisors not equal to 1 and
the integer itself.
Input
The first line contains single integer q (1 ≤ q ≤ 105) —
the number of queries.
q lines follow. The (i + 1)-th
line contains single integer ni (1 ≤ ni ≤ 109) —
the i-th query.
Output
For each query print the maximum possible number of summands in a valid splitting to composite summands, or -1, if there are no such splittings.
Examples
input
output
input
output
input
output
Note
12 = 4 + 4 + 4 = 4 + 8 = 6 + 6 = 12, but the first splitting has the maximum possible number of summands.
8 = 4 + 4, 6 can't be split
into several composite summands.
1, 2, 3 are less than any composite number, so they do not have valid splittings.
题目大意:
问我们将n分成尽可能多的合数的加和,问最多可以分成多少个合数。
思路:
尽可能分4,那么对于n来讲,其有四种情况:
%4==0
%4==1
%4==2
%4==3
那么对其分类讨论即可。
Ac代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n;
int t;scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n%4==0)printf("%d\n",n/4);
else if(n%4==1)
{
if(n<9)printf("-1\n");
else printf("%d\n",(n-9)/4+1);
}
else if(n%4==2)
{
if(n<6)printf("-1\n");
else printf("%d\n",(n-6)/4+1);
}
else
{
if(n<=11)printf("-1\n");
else printf("%d\n",(n-9)/4+1);
}
}
}
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given several queries. In the i-th query you are given a single positive integer ni.
You are to represent ni as
a sum of maximum possible number of composite summands and print this maximum number, or print -1, if there are no such splittings.
An integer greater than 1 is composite, if it is not prime, i.e. if it has positive divisors not equal to 1 and
the integer itself.
Input
The first line contains single integer q (1 ≤ q ≤ 105) —
the number of queries.
q lines follow. The (i + 1)-th
line contains single integer ni (1 ≤ ni ≤ 109) —
the i-th query.
Output
For each query print the maximum possible number of summands in a valid splitting to composite summands, or -1, if there are no such splittings.
Examples
input
1 12
output
3
input
2 6 8
output
1 2
input
31 23
output
-1 -1 -1
Note
12 = 4 + 4 + 4 = 4 + 8 = 6 + 6 = 12, but the first splitting has the maximum possible number of summands.
8 = 4 + 4, 6 can't be split
into several composite summands.
1, 2, 3 are less than any composite number, so they do not have valid splittings.
题目大意:
问我们将n分成尽可能多的合数的加和,问最多可以分成多少个合数。
思路:
尽可能分4,那么对于n来讲,其有四种情况:
%4==0
%4==1
%4==2
%4==3
那么对其分类讨论即可。
Ac代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n;
int t;scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n%4==0)printf("%d\n",n/4);
else if(n%4==1)
{
if(n<9)printf("-1\n");
else printf("%d\n",(n-9)/4+1);
}
else if(n%4==2)
{
if(n<6)printf("-1\n");
else printf("%d\n",(n-6)/4+1);
}
else
{
if(n<=11)printf("-1\n");
else printf("%d\n",(n-9)/4+1);
}
}
}
相关文章推荐
- Codeforces 652D Nested Segments【离散化+思维+树状数组】
- Codeforces 725C Hidden Word【思维+构造】
- 周赛二 CodeForces 545B 思维题
- Codeforces 888C K-Dominant Character 9(思维)
- Codeforces 507C Guess Your Way Out!【思维】
- Codeforces 521A DNA Alignment【贪心+思维】
- codeforces-233【B思维】
- Codeforces 233B Non-square Equation (数学+思维)
- Codeforces--333C--The Two Routes(最短路弗洛伊德)(思维)
- Codeforces 443C Borya and Hanabi【暴力+思维】
- Codeforces 313D Ilya and Roads【Dp+思维】
- CodeForces - 862E Mahmoud and Ehab and the function 二分(思维题)
- Codeforces 327D Block Tower【思维+Bfs】
- Codeforces 340C Tourist Problem【思维】
- CodeForces 66A - Petya and Java(思维)
- Codeforces 458A/51nod 1491 黄金系统【思维】好题~
- Codeforces 284D Cow Program【思维+记忆化搜索】
- Codeforces 699D. Fix a Tree【并查集+思维】
- CodeForces - 876B Divisiblity of Differences 思维
- CodeForces - 876D Sorting the Coins 模拟+思维