Submission #896711
Source Code Expand
#include <iostream>
#include <bitset>
#include <assert.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <string>
#include <string.h>
#include <cmath>
#include <memory.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int oo=2e9;
int R,C,n;
map<pair<int,int>,ll> g;
void NO(){
puts("No");
exit(0);
}
void upd(vector<int> &v,int at,int diff){
if(v[at]==oo || v[at]==diff)
v[at]=diff;
else
NO();
}
void check(int diff,int val){
if(diff==oo || diff==0)
return;
if(diff>0 && diff>val)
NO();
}
int main()
{
scanf("%d%d%d",&R,&C,&n);
for(int i=0;i<n;++i){
int r,c,val;
scanf("%d%d%d",&r,&c,&val);
g[{r,c}]=val;
}
vector<int> u(R+3,oo),l(C+3,oo),r(C+3,oo),d(R+3,oo);
vector<int> pur(R+3,oo),pul(R+3,oo),pdl(R+3,oo),pdr(R+3,oo);
int dr[4]={-1,1,0,0};
int dc[4]={0,0,-1,1};
for(auto x:g){
for(int i=0;i<4;++i){
if(g.find(make_pair(x.first.first+dr[i],x.first.second+dc[i]))!=g.end()){
int diff=x.second-g[make_pair(x.first.first+dr[i],x.first.second+dc[i])];
int mR=x.first.first;
int mC=x.first.second;
if(i==0)
upd(u,mR,diff);
else if(i==1)
upd(d,mR,diff);
else if(i==2)
upd(l,mC,diff);
else
upd(r,mC,diff);
}
}
int diff;
int r=x.first.first;
int c=x.first.second;
int nr=r-1,nc=c+1;
if(g.find({nr,nc})!=g.end()){
diff=abs(g[{nr,nc}]-g[{r,c}]);
upd(pur,r,diff%2);
}
nr=r-1,nc=c-1;
if(g.find({nr,nc})!=g.end()){
diff=abs(g[{nr,nc}]-g[{r,c}]);
upd(pul,r,diff%2);
}
nr=r+1,nc=c+1;
if(g.find({nr,nc})!=g.end()){
diff=abs(g[{nr,nc}]-g[{r,c}]);
upd(pdr,r,diff%2);
}
nr=r+1,nc=c-1;
if(g.find({nr,nc})!=g.end()){
diff=abs(g[{nr,nc}]-g[{r,c}]);
upd(pdl,r,diff%2);
}
}
for(auto x:g){
int mr=x.first.first;
int mc=x.first.second;
int val=g[{mr,mc}];
check(u[mr],val);
check(l[mc],val);
check(r[mc],val);
check(d[mr],val);
}
puts("Yes");
return 0;
}
Submission Info
Submission Time
2016-09-24 22:28:09+0900
Task
D - Grid and Integers
User
Hasan0540
Language
C++14 (GCC 5.4.1)
Score
0
Code Size
2113 Byte
Status
WA
Exec Time
134 ms
Memory
9600 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:40:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&R,&C,&n);
^
./Main.cpp:43:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&r,&c,&val);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
0 / 800
Status
Set Name
Test Cases
Sample
0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt
All
0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt
Case Name
Status
Exec Time
Memory
0_00.txt
AC
3 ms
256 KB
0_01.txt
AC
3 ms
256 KB
0_02.txt
AC
3 ms
256 KB
0_03.txt
AC
3 ms
256 KB
0_04.txt
AC
3 ms
256 KB
1_00.txt
AC
6 ms
3328 KB
1_01.txt
AC
6 ms
3328 KB
1_02.txt
AC
6 ms
3328 KB
1_03.txt
WA
6 ms
3328 KB
1_04.txt
AC
6 ms
3328 KB
1_05.txt
WA
6 ms
3328 KB
1_06.txt
AC
120 ms
9600 KB
1_07.txt
AC
124 ms
9600 KB
1_08.txt
AC
124 ms
9600 KB
1_09.txt
WA
120 ms
9600 KB
1_10.txt
AC
128 ms
9600 KB
1_11.txt
WA
124 ms
9600 KB
1_12.txt
AC
126 ms
9600 KB
1_13.txt
WA
124 ms
9600 KB
1_14.txt
AC
134 ms
9600 KB
1_15.txt
WA
125 ms
9600 KB
1_16.txt
AC
119 ms
9600 KB
1_17.txt
AC
120 ms
9600 KB
1_18.txt
AC
119 ms
9600 KB
1_19.txt
AC
120 ms
9600 KB
1_20.txt
WA
78 ms
4992 KB
1_21.txt
AC
35 ms
3328 KB
1_22.txt
AC
8 ms
1920 KB
1_23.txt
AC
76 ms
6400 KB
1_24.txt
WA
96 ms
6016 KB
1_25.txt
WA
75 ms
5248 KB
1_26.txt
AC
9 ms
896 KB
1_27.txt
AC
15 ms
2048 KB
1_28.txt
WA
123 ms
8576 KB
1_29.txt
AC
40 ms
3968 KB
1_30.txt
WA
115 ms
7808 KB
1_31.txt
AC
46 ms
4992 KB
1_32.txt
WA
102 ms
5888 KB
1_33.txt
WA
115 ms
7808 KB
1_34.txt
AC
16 ms
2048 KB
1_35.txt
WA
66 ms
7168 KB
1_36.txt
AC
19 ms
3072 KB
1_37.txt
WA
48 ms
3328 KB
1_38.txt
AC
87 ms
6912 KB
1_39.txt
AC
28 ms
3584 KB
1_40.txt
AC
87 ms
7168 KB
1_41.txt
AC
41 ms
5376 KB
1_42.txt
WA
104 ms
6272 KB
1_43.txt
WA
78 ms
6656 KB
1_44.txt
WA
104 ms
7936 KB
1_45.txt
WA
31 ms
2432 KB
1_46.txt
WA
112 ms
7808 KB
1_47.txt
AC
39 ms
2944 KB
1_48.txt
WA
35 ms
2816 KB
1_49.txt
AC
13 ms
1920 KB
1_50.txt
WA
64 ms
5248 KB
1_51.txt
WA
114 ms
7296 KB
1_52.txt
AC
11 ms
2688 KB
1_53.txt
AC
19 ms
2816 KB
1_54.txt
AC
36 ms
3840 KB
1_55.txt
AC
51 ms
3968 KB
1_56.txt
WA
80 ms
6528 KB
1_57.txt
WA
122 ms
7424 KB
1_58.txt
WA
100 ms
7424 KB
1_59.txt
AC
9 ms
2176 KB
1_60.txt
AC
3 ms
256 KB
1_61.txt
AC
3 ms
256 KB
1_62.txt
AC
3 ms
256 KB
1_63.txt
AC
3 ms
256 KB