代码:
#include<iostream>
#include<set>
using namespace std;
const int N=110;
int a[N],b[N];
set<int>res1,res2,res3;
int sum;
int main(){
int n;
cin>>n;
cin>>a[1]>>a[2]>>a[3];
cin>>b[1]>>b[2]>>b[3];
int t=-2;
for(int i=1;i<=5;i++){
int temp1=(a[1]+(t)+n)%n;
int temp2=(a[2]+(t)+n)%n;
int temp3=(a[3]+(t)+n)%n;
res1.insert(temp1);
res2.insert(temp2);
res3.insert(temp3);
t++;
}
t=-2;
for(int i=1;i<=5;i++){
int temp1=(b[1]+(t)+n)%n;
int temp2=(b[2]+(t)+n)%n;
int temp3=(b[3]+(t)+n)%n;
res1.insert(temp1);
res2.insert(temp2);
res3.insert(temp3);
t++;
}
if(n<=5){
cout<<n*n*n<<endl;
return 0;
}
int ans=0;
ans=250-(10-res1.size())*(10-res2.size())*(10-res3.size());//!!!!!!!!!!精髓!
cout<<ans<<endl;
return 0;
}
写在后边:
对于交集这一部分需要慎重思考,本菜鸟第一遍做就没有想到如何去表达这个交集部分
不过就这个数据量三层循环暴力枚举也是完全ok的,但是我为什么没想到呢?