Submission #1142366

#TimeUsernameProblemLanguageResultExecution timeMemory
1142366vticjsCutting a rectangle (LMIO18_staciakampis)C++20
0 / 100
0 ms328 KiB
#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;


struct r {
    int a;
    int b;
};

r order(int a, int b) {
    r out;
    if (a >= b) {
        out.a = a;
        out.b = b;
    }
    else {
        out.a = b;
        out.b = a;
    }    
    return out;
}

bool comp(int a, int b) {
    return a < b;
}

r ds[20001];
vector<int> v;

int main()
{
    int st = 0, dr = 0;
    int st1, dr1;
    int k;
    int a, b;
    r crt; 
    cin >> k;
    if (k > 0) {
        cin >> crt.a >> crt.b;
        ds[0] = crt;
        dr = 1;
    }

    for (int i = 1; i < k; i++) {
        cin >> crt.a >> crt.b;
        st1 = dr;
        dr1 = st1;
        for (int j = st; j < dr; j++) {
            if (ds[j].a == crt.a) {
                a = crt.a;
                b = ds[j].b + crt.b;
                ds[dr1] = order(a, b);
                dr1++;
            }
            if (ds[j].a == crt.b) {
                a = crt.b;
                b = ds[j].b + crt.a;
                ds[dr1] = order(a, b);
                dr1++;
            }
            if (ds[j].b == crt.a) {
                a = crt.a;
                b = ds[j].a + crt.b;
                ds[dr1] = order(a, b);
                dr1++;
            }
            if (ds[j].b == crt.b) {
                a = crt.b;
                b = ds[j].a + crt.a;
                ds[dr1] = order(a, b);
                dr1++;
            }
        }
        st = st1;
        dr = dr1;
    }

    for (int i = st; i < dr; i++) {
        if (find(v.begin(), v.end(), ds[i].b) == v.end()) {
            v.push_back(ds[i].b);
        }
    }

    sort(v.begin(), v.end(), comp);
    cout << v.size() << '\n';
    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << '\n';
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...