USACO · 916

The Great Revegetation

This C++ solution uses simulation for USACO 916 The Great Revegetation. Read the reasoning, inspect the code, or try your own test case below.

916Graphs & treesSimulationC++32 lines
Solution217of 248
Open official problem ↗ Download C++ file ↓ Search the library → Open full Code Lab ↗ Report an issue ↗

Approach

Simulation

The Great Revegetation matches the pasture graph and the required four-color assignment.

Graphs & trees

Problem and code

Useful links.

Written by benbenyaojifen. Try the problem first, then compare your approach with the code.

Open official problem ↗View exact source file ↗
Implementation

the_great_revegetation.cpp

C++

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);
        int n, m; cin >> n >> m;
        vector<int> node(n + 1, -1);
        vector<vector<int>> adj(n + 1);
        for(int i = 0; i < m; i++){
            int a, b; cin >> a >> b;
            adj[a].push_back(b);
            adj[b].push_back(a);
        }
        for(int i = 1; i <= n; i++){
            vector<bool> used(5);
            for(int c : adj[i]){
                if(node[c] != -1){
                    used[node[c]] = 1;
                }
            }
            for(int j = 1; j <= 4; j++){
                if(!used[j]){
                    node[i] = j;
                    break;
                }
            }
        }
        for(int i = 1; i <= n; i++){
            cout << node[i] << (i == n ? "\n" : "");
        }
        return 0;
    }
        

Did this explanation save you time? I'm a Grade 11 student building this free library to make difficult algorithms easier to understand.

Buy me a coffee ↗Keep studying →

Test this problem

Run your code here.

Paste your code, run a test case, compare the output, or trace selected values.

Full trace, comparison & stress testing ↗
StatusReady
Output
No run yet.
Diagnostics
No diagnostics yet.

Each run is isolated and has strict limits. Passing one test does not guarantee the judge will accept the solution.