【题解】最小新整数
【问题描述】
第⼀⾏有x个正整数a1,a2,..,ax,
第⼆⾏有y个正整数b1,b2,...,by,
第三⾏有z个正整数c1,c2,...,cz,
假设第⼀⾏的x个正整数中的最⼤值为a、第⼆⾏的y个正整数中的最⼤值为b、第三⾏的z个正整数中
的最⼤值为c,
输出(a*b*c)%10007的结果。
【输⼊格式】:
第⼀⾏有x+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数x,后⾯的x个数表⽰
a1,a2,……ax。
第⼀⾏有y+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数y,后⾯的y个数表⽰
b1,b2,……by。
第⼀⾏有z+1个正整数,每个数之间⼀个空格分隔。第⼀个数表⽰整数的个数z,后⾯的z个数表⽰
c1,c2,……cz。
【输出格式】:
⼀个整数 是(a*b*c)%10007的值。
【样例输入】
3 2 1 3 4 5 3 2 1 2 1 2
【样例输出】
30
【数据规模和约定】
30%的数据:0<x,y,z<=1000, 0<a1,a2,...,ax,b1,b2,...,by,c1,c2,...,cz<=1e3;
80%的数据:0<x,y,z<=1000, 0<a1,a2,...,ax,b1,b2,...,by,c1,c2,...,cz<=1e6;
100%的数据:0<x,y,z<=1000, 0<a1,a2,…,ax,b1,b2,...,by,c1,c2,...,cz<=1e9。
(注意:1e3=10001e6=1000000 1e9=1000000000)
【题目分析】
比较简单的数据计算题目,稍微难的就是数据范围。
可以用(a*b)%p= (a%p*b%p)%p来进行简化
【参考答案】
#include<bits/stdc++.h>
using namespace std;
int main(){
int x,y,z,a,b,c,max1=0,max2=0,max3=0;
cin>>x;
for(int i=0;i<x;i++){
cin>>a;
if(max1<a)
max1=a;
}
cin>>y;
for(int i=0;i<y;i++){
cin>>b;
if(max2<b)
max2=b;
}
cin>>z;
for(int i=0;i<z;i++){
cin>>c;
if(max3<c)
max3=c;
}
cout<<(max1*max2*max3)%10007;
return 0;
}扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。