【题解】最小新整数
【问题描述】
第⼀⾏有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; }