Submission #67475472


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
int n,m,q;
int a[10005],b[10005],l[10005],r[10005];
vector<int> V[4000005],reV[4000005];
int pos(int i,int j,int p){
	if(p==0) return (i-1)*(m+2)+j+1;
	else return pos(i,j,0)+pos(n,m+1,0);
}
void add(int u,int v){
//	cout<<u<<" "<<v<<"\n"; 
	V[u].push_back(v);
	reV[v].push_back(u);
}
int vis[4000005];
stack<int> S;
void dfs1(int u){
	vis[u]=1;
	for(int v:V[u]){
		if(vis[v]) continue;
		dfs1(v);
	}
	S.push(u);
}
int id[4000005];
void dfs2(int u,int t){
	id[u]=t;
	for(int v:reV[u]){
		if(id[v]) continue;
		dfs2(v,t);
	}
}
int main(){
	cin>>n>>m>>q;
	for(int i=1;i<=q;i++){
		cin>>a[i]>>b[i]>>l[i]>>r[i];
	}
	for(int i=1;i<=n;i++){
		add(pos(i,0,0),pos(i,0,1));
		add(pos(i,m+1,1),pos(i,m+1,0));
	}
	for(int i=1;i<=n;i++){
		for(int j=0;j<=m+1;j++){
			if(j!=0) add(pos(i,j,1),pos(i,j-1,1));
			if(j!=m+1) add(pos(i,j,0),pos(i,j+1,0));
		}
	}
	for(int i=1;i<=q;i++){
		int A=a[i],B=b[i],L=l[i],R=r[i];
		for(int j=0;j<=m+1;j++){
			if(R-j+1<=m+1){
				add(pos(A,j,1),pos(B,max(0,R-j+1),0));
				add(pos(B,j,1),pos(A,max(0,R-j+1),0));
			}
			if(L-j+1>=0){
				add(pos(A,j,0),pos(B,min(m+1,L-j+1),1));
				add(pos(B,j,0),pos(A,min(m+1,L-j+1),1));
			}
		}
	}
	for(int i=1;i<=pos(n,m+1,1);i++){
		if(!vis[i]) dfs1(i);
	}
	int cnt=0;
	while(!S.empty()){
		int u=S.top();
		S.pop();
		if(!id[u]) dfs2(u,++cnt);
	}
	for(int i=1;i<=n;i++){
		for(int j=0;j<=m+1;j++){
			if(id[pos(i,j,1)]==id[pos(i,j,0)]){
				cout<<"-1\n";
				return 0;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(id[pos(i,j,1)]  > id[pos(i,j,0)]&&
			   id[pos(i,j+1,1)]<=id[pos(i,j+1,0)]){
				cout<<j<<" ";
				break;
			}
		}
	}
	return 0; 
}

Submission Info

Submission Time
Task Ex - Constrained Sums
User george0929
Language C++ 20 (gcc 12.2)
Score 600
Code Size 1766 Byte
Status AC
Exec Time 655 ms
Memory 260920 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 40
Set Name Test Cases
Sample example0.txt, example1.txt
All example0.txt, example1.txt, handmade0.txt, handmade1.txt, random0.txt, random1.txt, random10.txt, random11.txt, random12.txt, random13.txt, random14.txt, random15.txt, random16.txt, random17.txt, random18.txt, random19.txt, random2.txt, random20.txt, random21.txt, random22.txt, random23.txt, random24.txt, random25.txt, random26.txt, random27.txt, random28.txt, random29.txt, random3.txt, random30.txt, random31.txt, random32.txt, random33.txt, random34.txt, random35.txt, random4.txt, random5.txt, random6.txt, random7.txt, random8.txt, random9.txt
Case Name Status Exec Time Memory
example0.txt AC 30 ms 3560 KiB
example1.txt AC 30 ms 3520 KiB
handmade0.txt AC 30 ms 3712 KiB
handmade1.txt AC 30 ms 3768 KiB
random0.txt AC 399 ms 186612 KiB
random1.txt AC 423 ms 203868 KiB
random10.txt AC 310 ms 215584 KiB
random11.txt AC 588 ms 204788 KiB
random12.txt AC 487 ms 237532 KiB
random13.txt AC 504 ms 249528 KiB
random14.txt AC 456 ms 213036 KiB
random15.txt AC 482 ms 219480 KiB
random16.txt AC 349 ms 220488 KiB
random17.txt AC 503 ms 209592 KiB
random18.txt AC 502 ms 239292 KiB
random19.txt AC 522 ms 244096 KiB
random2.txt AC 446 ms 205688 KiB
random20.txt AC 514 ms 242096 KiB
random21.txt AC 477 ms 220556 KiB
random22.txt AC 354 ms 230588 KiB
random23.txt AC 473 ms 203572 KiB
random24.txt AC 411 ms 244848 KiB
random25.txt AC 420 ms 250880 KiB
random26.txt AC 413 ms 242732 KiB
random27.txt AC 436 ms 257552 KiB
random28.txt AC 308 ms 196868 KiB
random29.txt AC 437 ms 260920 KiB
random3.txt AC 425 ms 195892 KiB
random30.txt AC 442 ms 199752 KiB
random31.txt AC 457 ms 205724 KiB
random32.txt AC 484 ms 206316 KiB
random33.txt AC 488 ms 210380 KiB
random34.txt AC 298 ms 203812 KiB
random35.txt AC 655 ms 223112 KiB
random4.txt AC 292 ms 201004 KiB
random5.txt AC 547 ms 198980 KiB
random6.txt AC 433 ms 209368 KiB
random7.txt AC 454 ms 214572 KiB
random8.txt AC 459 ms 214452 KiB
random9.txt AC 481 ms 225672 KiB