Submission

Status:

P-P-PPPPPP

Subtask/Task Score:

80/100

Score: 80

User: Weathery

Problemset: Weird Castle

Language: cpp

Time: 0.003 second

Submitted On: 2026-10-08 07:48:11

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int a,b,p,q,i,j1,j2,k,s=0;
	cin >> a>>b;
	p=ceil(sqrt(a));
	q=ceil(sqrt(b));
	i=(p-2)*2+1;
	j1=a;
	k=p;
	while (k>q) {
		if (j1>=pow(k,2)-1) {
			break;
		} 
		j1-=i;
		i-=2;
		k--;
		s+=2;
	}
	i+=2;
	while (k>q) {
		j1-=i;
		i-=2;
		k--;
		s+=2;
	}
	if (j1==b-1) s-=2;
	if (b>j1) {
		s+=b-j1;
		cout << s;
		return 0;
	} else if (j1==b) {
		cout << s;
		return 0;
	}
	s=0;
	i=(p-2)*2+3;
	j2=a;
	k=p;
	while (k>q) {
		if (j2<=pow(k-1,2)+2) {
			s-=2;
			break;
		} 
		j2-=i;
		i-=2;
		k--;
		s+=2;
	}
	i-=2;
	while (k>q) {
		j2-=i;
		i-=2;
		k--;
		s+=2;
	}
	if (b<j2) {
		s+=j2-b;
		cout << s;
		return 0;
	}
	if (((p^a)&1)&&!((q^b)&1)) {
		s--;
	} else if (!((p^a)&1)&&((q^b)&1)) {
		s++;
	}
	cout << s;
	return 0;
}