int maximumWhiteTiles(vector<vector>& tiles, int carpetlen) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(0);
int n=tiles.size();
sort(tiles.begin(),tiles.end());
vector<int> cn(n);
vector<int> f(n);
cn[0]=tiles[0][1]-tiles[0][0]+1;
f[0]=tiles[0][0];
for(int i=1;i<n;i++)
{
f[i]=tiles[i][0];
cn[i]=cn[i-1]+tiles[i][1]-tiles[i][0]+1;
}
int c=0;
for(int i=0;i<n;i++)
{ int x=tiles[i][0];
x+=carpetlen-1;
int z=0;
int v=upper_bound(f.begin(),f.end(),x)-f.begin();
v--;
int q=cn[v];
if(tiles[v][1]>x)
q-=(tiles[v][1]-x);
z=q;
if(i>0)
z-=cn[i-1];
c=max(c,z);
}return c;
}