#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
vector<int>po[100007],col[100007];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m,k;
cin>>n>>m>>k;
int x=0,y=0;
for(int i=1;i<=k;++i){
cin>>x>>y;
po[x].push_back(y);
col[y].push_back(x);
}
long long sum=0;
int tamp=m;
x=1,y=1;
for(int i=0;i<po[1].size();++i)if(po[x][i]>1)
tamp=min(tamp,po[1][i]-1);
sum=tamp;
int a=0,b=0,c=0,d=0;//a为上边界,b为右边界,c为下边界,d为左边界
a=1;
y=tamp;//y为当前处于哪一列
while(1){
tamp=n-c;//tamp为当前行/列最远能走到的位置
for(int i=0;i<col[y].size();++i)if(col[y][i]>x)
tamp=min(tamp,col[y][i]-1);
if(tamp==x)
break;
sum+=tamp-x;
b=m-y+1;
x=tamp;//x为当前处于哪一行
tamp=d+1;
for(int i=0;i<po[x].size();++i)if(po[x][i]<y)
tamp=max(tamp,po[x][i]+1);
if(tamp==y)
break;
sum+=y-tamp;
c=n-x+1;
y=tamp;
tamp=a+1;
for(int i=0;i<col[y].size();++i)if(col[y][i]<x)
tamp=max(tamp,col[y][i]+1);
if(tamp==x)
break;
sum+=x-tamp;
d=y;
x=tamp;
tamp=m-b;
for(int i=0;i<po[x].size();++i)if(po[x][i]>y)
tamp=min(tamp,po[x][i]-1);
if(tamp==y)
break;
sum+=tamp-y;
a=x;
y=tamp;
}
if(sum==1ll*n*m-1ll*k)
cout<<"Yes";
else
cout<<"No";
return 0;
}

最新文章

  1. C#使用ADO.NET访问数据库(一)
  2. windows 上vmare超卡的问题解决方案
  3. Validation failed for one or more entities.
  4. 腾讯TOS
  5. JS+JavaBean判断管理员增删改的操作权限
  6. jQueryUI Datepicker的使用
  7. Storyboard里面的几种Segue区别和视图的切换
  8. 跳出if判断
  9. QR码生成原理
  10. Cocos2d-x在线粒子编辑器
  11. Flex移动应用程序开发的技巧和窍门(二)
  12. Oracle的substr函数
  13. HTML中引入CSS的方法
  14. Spring Security 入门(1-5)Spring Security - 匿名认证
  15. 写给 Android 应用工程师的 Binder 原理剖析
  16. Flask入门之SQLAlchemy数据库连接操作(第15讲)
  17. densenet 中的shortcut connection
  18. RedHat7系列(Centos/Debian) FireWall 防火墙 设置
  19. php 生成静态页面
  20. Delphi学习技巧

热门文章

  1. Makefile中的wildcard/notdir/patsubst
  2. Laravel 部署到阿里云 / 腾讯云
  3. Word2010如何从指定页设置页码
  4. 专题-集合-HashMap
  5. Mysql SQL CAST()函数
  6. Drawer 侧边栏、以及侧边栏内 容布局
  7. Lining Up
  8. 数据库备份与还原:mysqldump,source
  9. Could not initialize class net.sourceforge.tess4j.TessAPI 解决方法
  10. allegro 16.6 铜皮显示问题