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;
}