[ABC354D] AtCoder Wallpaper

[题目通道]([ABC354D] AtCoder Wallpaper - 洛谷)

简单大模拟

#include
using namespace std;
#define int long long
int a,b,c,d;
int area(int x,int y){
	if(x%4==0&&y%2==0){
		return x*y;
	}
	if(x%4==1&&y%2==0){
		return area(x-1,y)+y/2*3;
	}
	if(x%4==2&&y%2==0){
		return area(x-2,y)+y*3;
	}
	if(x%4==3&&y%2==0){
		return area(x-1,y)+y/2;
	}
	if(x%4==0&&y%2==1){
		return area(x,y-1)+x;
	}
	if(x%4==1&&y%2==1){
		return area(x-1,y)+area(x,y-1)+2-area(x-1,y-1);
	}
	if(x%4==2&&y%2==1){
		return area(x-1,y)+area(x,y-1)+1-area(x-1,y-1);
	}
    return area(x-1,y)+area(x,y-1)-area(x-1,y-1);
}
signed main(){
	cin.tie(0)->sync_with_stdio(0);
	cin>>a>>b>>c>>d;
	a+=1e9,b+=1e9,c+=1e9,d+=1e9;
	cout<

你可能感兴趣的:(c++,算法,数据结构)