USACO · 963

COW Gymnastics

This C++ solution uses simulation for USACO 963 COW Gymnastics. Read the reasoning, inspect the code, or try your own test case below.

963SQL & databasesSimulationC++38 lines
Solution064of 248
Open official problem ↗ Download C++ file ↓ Search the library → Open full Code Lab ↗ Report an issue ↗

Approach

Simulation

COW Gymnastics asks for ordered cow pairs ranked consistently in every session; the code checks all pairs across all rankings.

SQL & databases

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

cow_gymnastics.cpp

C++

    #include <bits/stdc++.h>
     
    using namespace std;
     
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);
        int n, k;
        cin >> n >> k;
        vector<vector<pair<int, int>>> all(n - 1);
        vector<pair<int, int>> first;
        for(int i = 0; i < n; i++){
            vector<int> v(k);
            for(int j = 0; j < k; j++){
                cin >> v[j];;
            }
            for(int j = 0; j < v.size() - 1; j++){
                for(int m = j + 1; m < v.size(); m++){
                    int larger = v[j], smaller = v[m];
                    if(i == 0){
                        first.emplace_back(larger, smaller);
                    } else {
                        all[i - 1].push_back({larger, smaller});
                    }
                }
            }
        }
        int ans = first.size();
        for(auto p1 : first){
            for(int i = 0; i < all.size(); i++){
                if(find(all[i].begin(), all[i].end(), p1) == all[i].end()){
                    ans--; break;
                }
            }
        }
        cout << ans << '\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.