107842024-04-12 15:58:47111Vasútépítéscpp17Hibás válasz 40/10057ms28496 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
#ifdef CB
	freopen("be3.txt","r",stdin);
//	freopen("ki.txt","w",stdout);
#endif
	int N,M;
	cin>>N>>M;
	vector<vector<int>>g(N+1);
	for(int i=0;i<M;i++){
		int a,b;
		cin>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
	}
	int x1=0,x2=1e7,x3=2e7;
	vector<vector<int>>ans(N+1,vector<int>(N+1,-1));
	auto add1=[&](int i,int j)->void{
		ans[i][j]=x1;
		ans[j][i]=x1;
		x1++;
	};
	auto add2=[&](int i,int j)->void{
		ans[i][j]=x2;
		ans[j][i]=x2;
		x2++;
	};
	vector<int>v(N+1),w(N+1),p(N+1);
	for(int i=1;i<=N;i++){
		if(v[i]){
			continue;
		}
		v[i]=1;
		vector<int>c;
		vector<int>s;
		vector<int>t;
		auto dfs=[&](auto self,int i)->void{
			s.push_back(i);
			t.push_back(i);
			for(int j:g[i]){
				if(j==p[i]){
					continue;
				}
				if(v[j]){
					if(v[j]<v[i]){
						if(!c.empty()){
							cout<<-1<<'\n';
							exit(0);
						}
						c.push_back(j);
						w[j]=c.size();
						for(int k=s.size()-1;s[k]!=j;k--){
							c.push_back(s[k]);
							w[s[k]]=c.size();
						}
					}
					if(v[j]>v[i]&&!w[i]){
						cout<<-1<<'\n';
						exit(0);
					}
					continue;
				}
				v[j]=v[i]+1;
				p[j]=i;
				self(self,j);
			}
			s.pop_back();
		};
		dfs(dfs,i);
		if(!c.empty()){
			for(int i:c){
				auto dfs2=[&](auto self,int i,int p)->void{
					for(int j:g[i]){
						if(j==p||w[j]){
							continue;
						}
						add2(i,j);
						self(self,j,i);
					}
				};
				dfs2(dfs2,i,0);
			}
			for(int i=0;i<c.size();i++){
				add1(c[i],c[(i+1)%c.size()]);
			}
		}
		else{
			for(int j:t){
				add2(j,p[j]);
			}
		}
	}
	for(int i=1;i<=N;i++){
		for(int j=i+1;j<=N;j++){
			if(ans[i][j]==-1){
				ans[i][j]=x3++;
			}
			cout<<ans[i][j]<<' ';
		}
		cout<<'\n';
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva3ms2060 KiB
3Elfogadva3ms2496 KiB
subtask240/40
4Elfogadva54ms18444 KiB
5Elfogadva57ms18724 KiB
6Elfogadva57ms18968 KiB
7Elfogadva57ms18940 KiB
8Elfogadva57ms19080 KiB
9Elfogadva54ms18996 KiB
10Elfogadva54ms18912 KiB
11Elfogadva3ms2968 KiB
subtask30/60
12Elfogadva54ms18444 KiB
13Elfogadva57ms18724 KiB
14Elfogadva57ms18968 KiB
15Elfogadva57ms18940 KiB
16Elfogadva57ms19080 KiB
17Elfogadva54ms18996 KiB
18Elfogadva54ms18912 KiB
19Elfogadva3ms2968 KiB
20Elfogadva56ms19736 KiB
21Elfogadva57ms19252 KiB
22Elfogadva57ms19436 KiB
23Elfogadva57ms19376 KiB
24Elfogadva57ms19364 KiB
25Elfogadva57ms19480 KiB
26Elfogadva54ms19644 KiB
27Elfogadva54ms19752 KiB
28Elfogadva50ms28496 KiB
29Hibás válasz57ms19936 KiB
30Elfogadva9ms20220 KiB
31Elfogadva8ms20048 KiB