Iskander the Baker is decorating a huge cake, covering the rectangular surface of the cake with frosting.For this purpose, he mixes frosting sugar with lemon juice and food coloring, in order to produce three kinds of frosting: yellow, pink, and white. These colors are identi?ed by the numbers 0 for yellow,1 for pink, and 2 for white.
To obtain a nice pattern, he partitions the cake surface into vertical stripes of width A1, A2, . . . , An entimeters, and horizontal stripes of height B1, B2, . . . , Bn centimeters, for some positive integer n.
These stripes split the cake surface into n × n rectangles. The intersection of vertical stripe i and horizontal stripe j has color number (i + j) mod 3 for all 1 6 i, j 6 n. To prepare the frosting, Iskander wants to know the total surface in square centimeters to be colored for each of the three colors, and asks for your help.
The output should consist of three integers separated with single spaces, representing the total area for each color 0, 1, and 2.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int a[100005];
int b[100005];
int n;
long long int aa[5]={0};
long long int bb[5]={0};
memset(aa,0,sizeof(aa));
memset(bb,0,sizeof(bb));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)
{
scanf("%d",&b[i]);
}
for(int i=1;i<=n;i++)
{
if(i%3==1)
{
aa[1]+=a[i];
bb[1]+=b[i];
}
else if(i%3==2)
{
aa[2]+=a[i];
bb[2]+=b[i];
}
else if(i%3==0)
{
aa[3]+=a[i];
bb[3]+=b[i];
}
}
// for(int i=1;i<=3;i++)
// {
// printf("%lld %lld\n",aa[i],bb[i]);
// }
long long int ans1,ans2,ans3;
ans3=aa[1]*bb[1]+aa[3]*bb[2]+aa[2]*bb[3];
ans1=aa[2]*bb[1]+aa[1]*bb[2]+aa[3]*bb[3];
ans2=aa[3]*bb[1]+aa[2]*bb[2]+aa[1]*bb[3];
printf("%lld %lld %lld\n",ans1,ans2,ans3);
}