Sponsors

Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals), problem: (E) Perpetual Motion Machine Solution In C/C++

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

#define inf 1023456789
#define linf 1023456789123456789ll
#define pii pair<int,int>
#define pipii pair<int, pii >
#define pll pair<long long,long long>
#define vint vector<int>
#define vvint vector<vint >
#define ll long long
#define pdd pair<double, double>

//#define DEBUG
#ifdef DEBUG
#define db(x) cerr << #x << ” = ” << x << endl
#else
#define db(x)
#endif

vector<ll> value;
vector<bool> visited;
vvint sus;

vector<int> deg3, deg4;

int dfs(int node, int parent = -1)
{
if(visited[node]) return node;
visited[node] = 1;
if(sus[node].size() == 3) deg3.push_back(node);
if(sus[node].size() >= 4) deg4.push_back(node);
for(int i=0; i<sus[node].size(); i++)
{
if(sus[node][i] == parent)continue;
int ret = dfs(sus[node][i], node);
if(ret != -1)
{
if(ret == -2) return -2;
value[node] = 1;
if(ret == node) return -2;
return ret;
}
}
return -1;
}

bool mark3dfs(int node, int parent = -1)
{
if(parent != -1 && sus[node].size() >= 3)
{
value[node] = 2;
for(int i=0; i<sus[node].size(); i++) value[sus[node][i]] = 1;
return true;
}
for(int i=0; i<sus[node].size(); i++)
{
if(sus[node][i] == parent)continue;
if(mark3dfs(sus[node][i], node))
{
value[node] = 2;
return true;
}
}
return false;
}

int find_depth(int node, int parent)
{
for(int i=0; i<sus[node].size(); i++)
{
if(sus[node][i] == parent)continue;
return find_depth(sus[node][i], node) + 1;
}
return 1;
}

void color(int node, int parent, ll val, ll step)
{
val -= step;
if(val <= 0) return;
value[node] = val;
for(int i=0; i<sus[node].size(); i++)
{
if(sus[node][i] == parent)continue;
color(sus[node][i], node, val, step);
}
}

bool solve_component(int node)
{
deg3 = vint(0);
deg4 = vint(0);
if(dfs(node) == -2) return 1;
if(deg4.size() > 0)
{
int hub = deg4[0];
value[hub] = 2;
for(int i=0; i<4; i++)
{
value[sus[hub][i]] = 1;
}
return true;
}
if(deg3.size() >= 2)
{
for(int i=0; i<sus[deg3[0]].size(); i++)
{
value[sus[deg3[0]][i]] = 1;
}
mark3dfs(deg3[0]);
return true;
}
if(deg3.size() == 0)
{
return false;
}

int hub = deg3[0];
ll depth[3];
for(int i=0; i<3; i++)
{
depth[i] = min(6, 1+find_depth(sus[hub][i], hub));
}
if(depth[0] * depth[1] + depth[1] * depth[2] + depth[2] * depth[0] > depth[0]*depth[1]*depth[2])
{
return false;
}
value[hub] = 120000;
for(int i=0; i<3; i++)
{
color(sus[hub][i], hub, value[hub], (value[hub]-1)/depth[i]+1);
}
return true;
}

int main()
{
int t;
scanf(“%d”, &t);
for(int test = 0; test < t; test++)
{
int n, m;
scanf(“%d %d”, &n, &m);
sus = vector<vector<int> >(n);
for(int i=0; i<m; i++)
{
int a, b;
scanf(“%d %d”, &a, &b);
a–;
b–;
sus[a].push_back(b);
sus[b].push_back(a);
}
value = vector<ll>(n, 0);
visited = vector<bool>(n, 0);
bool solved = 0;
for(int i=0; i<n; i++)
{
if(!visited[i])
{
if(solve_component(i))
{
printf(“YES\n”);
for(int j=0; j<n; j++)
{
printf(“%d%c”, (int)(value[j]), ” \n”[j+1 == n]);
}
solved = 1;
break;
}
}
}
if(!solved)
{
printf(“NO\n”);
}
}
return 0;
}

8 killed, 95 injured...

Tragic Escalation: US-Israeli Strikes on Iran’s B1 Bridge Claim...

Singapore Airlines Direct Rtn...

Experience Luxury for Less: Singapore Airlines Announces Direct Return...

UWEC’s Bullert named scholar...

Ava Bullert: A Legacy of Academic and Athletic Excellence...

First Nations rehabilitation programs...

Improving First Nations Rehabilitation Programs: A Path Forward In Australia,...

CyberPower PC – 7800X3D,...

Score Big with the CyberPower PC RTX 5070 Ti...

North Korea’s Kim Jong...

Kim Jong Un Oversees Advanced Rocket Engine and Tank...

8 killed, 95 injured as US-Israeli strikes hit Iran’s B1 Bridge

Tragic Escalation: US-Israeli Strikes on Iran’s B1 Bridge Claim Eight Lives The geopolitical landscape of the Middle East has taken a somber and dangerous turn...

Singapore Airlines Direct Rtn to Singapore Ex PER $595, DRW $613, BNE $822 MEL $838, SYD $846, CNS $859 & More @ BTF

Experience Luxury for Less: Singapore Airlines Announces Direct Return Flights from Australia Travelers looking for a premium experience at an affordable price are in luck....

UWEC’s Bullert named scholar athlete of the year

Ava Bullert: A Legacy of Academic and Athletic Excellence at UW-Eau Claire In the highly competitive world of collegiate athletics, finding a player who perfectly...

First Nations rehabilitation programs aren’t keeping people out of prison. Here’s what would help

Improving First Nations Rehabilitation Programs: A Path Forward In Australia, the incarceration rates of First Nations people remain a critical issue that demands urgent systemic...

CyberPower PC – 7800X3D, RTX 5070 ti, 32GB, 2TB SSD, B850-VC Pro, Corsair RM850 watt, 2Year Premium Warranty +free Mech Keyboard and Resident Evil...

Score Big with the CyberPower PC RTX 5070 Ti Gaming Rig Deal Finding a high-end gaming PC that balances cutting-edge components with a reasonable price...

North Korea’s Kim Jong Un inspects solid-fuel rocket engine, new battle tank as Pyongyang steps up military development

Kim Jong Un Oversees Advanced Rocket Engine and Tank DevelopmentsIn a significant display of military modernization, North Korean leader Kim Jong Un has personally...

Aurangabad horror: Uncle locks 3 children inside room, slits their throats, attempts suicide

Shocking Incident in Aurangabad: Uncle Kills Three Children over Family Feud A horrific incident has sent shockwaves through the Aurangabad district of Bihar, where a...

ついに明かされる”ペニーワイズ”の起源―。「IT/イット ウェルカム・トゥ・デリー “それ”が見えたら、終わり。<シーズン1>」Blu-ray BOX 6/3(水)発売決定!

The Nightmare Returns: IT: Welcome to Derry Season 1 Blu-ray Release Details Fans of Stephen King’s legendary horror saga are preparing to return to the...

Will too much AI weaken troops’ judgement?

The Pentagon's AI Integration: A Double-Edged Sword for Military PersonnelThe United States Department of Defense is moving at an unprecedented pace to integrate Large...