counterfeit——仿造的
forge——伪造
grid——网格
lexicographically——字典序
# include <iostream>
# include <cstring>
# define ll long long
const int maxn=100005;
struct Node{
ll t, l;
}node[maxn];
bool cmp(strcut Node a, struct Node b){
return a.t<b.t;
}
int main(){
using namespace std;
ll n, L, a;
cin>>n>>L>>a;
memset(times, 0, sizeof(times));
for(int i=0; i<n; i++)
cin>>node[i].t>>node[i].l;
node[n].t=L;
sort(node, node+n);
ll ans=0;
for(int i=1; i<=n; i++)
ans +=(node[i].t-node[i-1].t+node[i-1].l)/a;
ans += node[0].t/a;
cout << ans << endl;
return 0;
}
# include <iostream>
const int maxn=1005;
int n, m;
char ans[maxn][maxn];
char picture[maxn][maxn];
bool okpoint(int x, int y){
for(int i=-1; i<=1; i++)
for(int j=-1; j<=1; j++)
if(i==j&&i==0)
continue;
else if(ans[x+i][y+j]=='.')
return false;
return true;
}
void draw(int x, int y){
for(int i=-1; i<=1; i++)
for(int j=-1; j<=1; j++)
if(i==j&&i==0)
continue;
else
picture[x+i][y+j]='#';
}
bool ok(){
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
if(ans[i][j]==picture[i][j])
continue;
else
return false;
return true;
}
int main(){
using namespace std;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
picture[i][j]='.';
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin>>ans[i][j];
for(int i=1; i<n; i++)
for(int j=1; j<m; j++){
if(okpoint(i, j))
draw(i, j);
}
if(ok())
cout <<"YES"<<endl;
else
cout <<"NO"<<endl;
return 0;
}