Submission #1175814


Source Code Expand

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

typedef long long ll;
typedef pair<ll,ll> P;
typedef pair<P,ll> PP;
 
int R,C,N;
ll x,y;

PP G[100005]; 

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

vector<P> ex[100005],ey[100005]; bool xx[100005],z;

const ll INF=100000000005;

void dfs(int a,bool b){

	if(!b){
		while(ex[a].size()){
			if(c[ex[a][0].first]!=INF){
				if(c[ex[a][0].first]!=ex[a][0].second-r[a]){
					z=1;
 				}
			}
			else{
				c[ex[a][0].first]=ex[a][0].second-r[a];
				if(c[ex[a][0].first]<y) y=c[ex[a][0].first];
				dfs(ex[a][0].first,1);
			}
				ex[a].erase(ex[a].begin());
	    }
	}else{
		while(ey[a].size()){
			if(r[ey[a][0].first]!=INF){
				if(r[ey[a][0].first]!=ey[a][0].second-c[a]){
					z=1;
				}
			}
			else{
				r[ey[a][0].first]=ey[a][0].second-c[a];
				if(r[ey[a][0].first]<x) x=r[ey[a][0].first];
				dfs(ey[a][0].first,0);
			}
				ey[a].erase(ey[a].begin());
		}
	}

	return;
}
 
int main(){             
  
  cin>>R>>C>>N; 
  
  for(int i=0; i<N; i++) scanf("%ld %ld %ld", &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; xx[X[i]]=1;
  	Y[i]=G[i].first.second;
  	A[i]=G[i].second;
  }

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

  for(int i=0; i<N; i++){
  	ex[X[i]].push_back(P(Y[i],A[i]));
  	ey[Y[i]].push_back(P(X[i],A[i]));
  }

  for(int i=1; i<=R; i++){
  	if(xx[i]&&r[i]==INF){
  		r[i]=0; 
  		x=0; y=INF;
		dfs(i,0); 
		if(x+y<0){
			cout<<"No"<<endl; return 0;
		}	
  	}
  }

  if(z){
  	cout<<"No"<<endl; return 0;
  }

  cout<<"Yes"<<endl;
  
  return 0;
 
}    

Submission Info

Submission Time
Task D - Grid and Integers
User momotaro1303
Language C++14 (GCC 5.4.1)
Score 800
Code Size 1725 Byte
Status AC
Exec Time 109 ms
Memory 20992 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:59:98: warning: format ‘%ld’ expects argument of type ‘long int*’, but argument 2 has type ‘long long int*’ [-Wformat=]
   for(int i=0; i<N; i++) scanf("%ld %ld %ld", &G[i].first.first, &G[i].first.second, &G[i].second);
                                                                                                  ^
./Main.cpp:59:98: warning: format ‘%ld’ expects argument of type ‘long int*’, but argument 3 has type ‘long long int*’ [-Wformat=]
./Main.cpp:59:98: warning: format ‘%ld’ expects argument of type ‘long int*’, but argument 4 has type ‘long long int*’ [-Wformat=]
./Main.cpp:59:99: 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("%ld %ld %ld", &G[i].first.first, &G[i].first.second, &G[i].second);
                                                                                                   ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 5
AC × 69
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 4 ms 10368 KB
0_01.txt AC 4 ms 10368 KB
0_02.txt AC 4 ms 10368 KB
0_03.txt AC 4 ms 10368 KB
0_04.txt AC 4 ms 10368 KB
1_00.txt AC 4 ms 10368 KB
1_01.txt AC 4 ms 10368 KB
1_02.txt AC 4 ms 10368 KB
1_03.txt AC 4 ms 10368 KB
1_04.txt AC 4 ms 10368 KB
1_05.txt AC 4 ms 10368 KB
1_06.txt AC 49 ms 17536 KB
1_07.txt AC 54 ms 17536 KB
1_08.txt AC 54 ms 16512 KB
1_09.txt AC 53 ms 16512 KB
1_10.txt AC 58 ms 16256 KB
1_11.txt AC 58 ms 16256 KB
1_12.txt AC 66 ms 20992 KB
1_13.txt AC 60 ms 20992 KB
1_14.txt AC 65 ms 20992 KB
1_15.txt AC 69 ms 20992 KB
1_16.txt AC 65 ms 19200 KB
1_17.txt AC 61 ms 20736 KB
1_18.txt AC 63 ms 20224 KB
1_19.txt AC 60 ms 20352 KB
1_20.txt AC 38 ms 14464 KB
1_21.txt AC 18 ms 12032 KB
1_22.txt AC 6 ms 10624 KB
1_23.txt AC 37 ms 13824 KB
1_24.txt AC 45 ms 15616 KB
1_25.txt AC 36 ms 14080 KB
1_26.txt AC 7 ms 10752 KB
1_27.txt AC 9 ms 11008 KB
1_28.txt AC 58 ms 17280 KB
1_29.txt AC 20 ms 12160 KB
1_30.txt AC 54 ms 16384 KB
1_31.txt AC 23 ms 12544 KB
1_32.txt AC 47 ms 15872 KB
1_33.txt AC 56 ms 16384 KB
1_34.txt AC 10 ms 11136 KB
1_35.txt AC 109 ms 15360 KB
1_36.txt AC 11 ms 11264 KB
1_37.txt AC 24 ms 12928 KB
1_38.txt AC 42 ms 14336 KB
1_39.txt AC 15 ms 11648 KB
1_40.txt AC 41 ms 14208 KB
1_41.txt AC 21 ms 12288 KB
1_42.txt AC 50 ms 16128 KB
1_43.txt AC 35 ms 13824 KB
1_44.txt AC 46 ms 15616 KB
1_45.txt AC 17 ms 11776 KB
1_46.txt AC 56 ms 16128 KB
1_47.txt AC 21 ms 12288 KB
1_48.txt AC 18 ms 11904 KB
1_49.txt AC 9 ms 11008 KB
1_50.txt AC 31 ms 13440 KB
1_51.txt AC 54 ms 16896 KB
1_52.txt AC 7 ms 10752 KB
1_53.txt AC 11 ms 11264 KB
1_54.txt AC 19 ms 12032 KB
1_55.txt AC 24 ms 12672 KB
1_56.txt AC 38 ms 14208 KB
1_57.txt AC 56 ms 17408 KB
1_58.txt AC 47 ms 15488 KB
1_59.txt AC 6 ms 10752 KB
1_60.txt AC 4 ms 10368 KB
1_61.txt AC 4 ms 10368 KB
1_62.txt AC 4 ms 10368 KB
1_63.txt AC 4 ms 10368 KB