Submission #1164284


Source Code Expand

#include <bits/stdc++.h>
 
using namespace std;

typedef pair<int,int> P;
typedef pair<P,int> PP; 

map<int,int> m[100005],l[100005];
 
int R,C,N,n;

PP G[100005]; 

int c[100005],r[100005],A[100005],X[100005],Y[100005];

const int INF=1000000005;

void dfs(int a,int b){

	if(!l[a][b]) return;

	if(r[a]!=INF&&c[b]!=INF) return;

	if(r[a]==INF&&c[b]!=INF){
  		r[a]=m[a][b]-c[b]; 
  	}
  	if(r[a]!=INF&&c[b]==INF){
  		c[b]=m[a][b]-r[a]; 
  	}
  	if(a-1>=1) dfs(a-1,b); 
  	
  	if(a+1<=R) dfs(a+1,b); 
  	
  	if(b-1>=1) dfs(a,b-1); 
  	
  	if(b+1<=C) dfs(a,b+1); 

  	return;

}
 
int main(){             
  
  cin>>R>>C>>N; 
  
  for(int i=0; i<N; i++) scanf("%d %d %d", &G[i].first.first, &G[i].first.second, &G[i].second);

  sort(G,G+N);

  for(int i=0; i<N; i++){
  	X[i]=G[i].first.first;
  	Y[i]=G[i].first.second;
  	A[i]=G[i].second;
  }

  for(int i=0; i<N; i++){
  	m[X[i]][Y[i]]=A[i];
  	l[X[i]][Y[i]]=1;
  }

  for(int i=0; i<100005; i++){
  	c[i]=INF; r[i]=INF;
  }

  c[Y[0]]=0;

  for(int i=0; i<N; i++){
  	if(Y[i]==Y[0]){
  		r[X[i]]=A[i]; 
  	}
  }

  for(int i=0; i<N; i++){
  	if(r[X[i]]==INF&&c[Y[i]]==INF) continue;
  	if(r[X[i]]==INF||c[Y[i]]==INF) dfs(X[i],Y[i]);
  }

  for(int i=0; i<N; i++){
  	if(r[X[i]]!=INF&&c[Y[i]]!=INF){
  		if(r[X[i]]+c[Y[i]]!=A[i]){
  			cout<<"No"<<endl; return 0;
  		}
  	}
  }

  int x=INF,y=INF; int p,q;

  for(int i=1; i<=R; i++){
  	if(r[i]<x){
  		x=r[i]; p=i;
  	}
  }

  for(int i=1; i<=C; i++){
  	if(c[i]<y){
  		y=c[i]; q=i;
  	}
  }

  if(r[p]+c[q]<0){
  	cout<<"No"<<endl; return 0;
  }

  cout<<"Yes"<<endl;

  //cout<<r[2]<<endl;
  
  return 0;
 
}    

Submission Info

Submission Time
Task D - Grid and Integers
User momotaro1303
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1733 Byte
Status WA
Exec Time 66 ms
Memory 27264 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:46:96: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   for(int i=0; i<N; i++) scanf("%d %d %d", &G[i].first.first, &G[i].first.second, &G[i].second);
                                                                                                ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
AC × 5
AC × 46
WA × 23
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 5 ms 11520 KB
0_01.txt AC 6 ms 11520 KB
0_02.txt AC 5 ms 11520 KB
0_03.txt AC 5 ms 11520 KB
0_04.txt AC 5 ms 11520 KB
1_00.txt AC 6 ms 11520 KB
1_01.txt AC 6 ms 11520 KB
1_02.txt AC 6 ms 11520 KB
1_03.txt AC 5 ms 11520 KB
1_04.txt AC 5 ms 11520 KB
1_05.txt AC 5 ms 11520 KB
1_06.txt AC 49 ms 22144 KB
1_07.txt AC 54 ms 22144 KB
1_08.txt AC 51 ms 22144 KB
1_09.txt WA 51 ms 22144 KB
1_10.txt AC 55 ms 22144 KB
1_11.txt WA 55 ms 22144 KB
1_12.txt AC 55 ms 22144 KB
1_13.txt WA 56 ms 22144 KB
1_14.txt AC 56 ms 22144 KB
1_15.txt WA 56 ms 22144 KB
1_16.txt AC 51 ms 22144 KB
1_17.txt AC 53 ms 22144 KB
1_18.txt WA 53 ms 22144 KB
1_19.txt AC 53 ms 22144 KB
1_20.txt WA 38 ms 18304 KB
1_21.txt AC 19 ms 14464 KB
1_22.txt AC 7 ms 11904 KB
1_23.txt AC 36 ms 18048 KB
1_24.txt WA 45 ms 19840 KB
1_25.txt WA 37 ms 18048 KB
1_26.txt AC 9 ms 12160 KB
1_27.txt AC 11 ms 12672 KB
1_28.txt WA 55 ms 22016 KB
1_29.txt AC 21 ms 14976 KB
1_30.txt WA 52 ms 21376 KB
1_31.txt AC 24 ms 15488 KB
1_32.txt AC 53 ms 22144 KB
1_33.txt WA 52 ms 21376 KB
1_34.txt AC 12 ms 12800 KB
1_35.txt AC 66 ms 27264 KB
1_36.txt AC 12 ms 13056 KB
1_37.txt WA 25 ms 15744 KB
1_38.txt AC 41 ms 18944 KB
1_39.txt AC 16 ms 13824 KB
1_40.txt AC 40 ms 18816 KB
1_41.txt AC 22 ms 14976 KB
1_42.txt WA 48 ms 20608 KB
1_43.txt WA 37 ms 18176 KB
1_44.txt WA 47 ms 20480 KB
1_45.txt WA 20 ms 14592 KB
1_46.txt WA 51 ms 21120 KB
1_47.txt AC 22 ms 14976 KB
1_48.txt WA 20 ms 14592 KB
1_49.txt AC 11 ms 12544 KB
1_50.txt WA 33 ms 17152 KB
1_51.txt WA 51 ms 21248 KB
1_52.txt AC 8 ms 12160 KB
1_53.txt AC 12 ms 13056 KB
1_54.txt AC 21 ms 14592 KB
1_55.txt AC 30 ms 17792 KB
1_56.txt WA 39 ms 18432 KB
1_57.txt WA 54 ms 21888 KB
1_58.txt WA 46 ms 20096 KB
1_59.txt AC 8 ms 12032 KB
1_60.txt AC 5 ms 11520 KB
1_61.txt AC 5 ms 11520 KB
1_62.txt AC 5 ms 11520 KB
1_63.txt AC 5 ms 11520 KB