Submission #1349876

#TimeUsernameProblemLanguageResultExecution timeMemory
1349876adam17Naval battle (CEOI24_battle)C++20
6 / 100
0 ms344 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int smer(char s) {
    for (int i = 0; i < 4; i++) {
        if (s == "EWSN"[i]) {
            return i;
        }
    }
    return -1;
}

struct lod{
    int x;
    int y;
    int smer; // 0 X+ (E), 1 X- (W), 2 Y+ (S), 3 Y- (N)
};
int N;
vector<lod> lode;

int main() {
    cin >> N;
    int ax, ay, bx, by, as, bs;
    if (N == 1) {
        cout << "1\n";
    } else {
        char a, b;
        cin >> ax >> ay >> a >> bx >> by >> b;
        as = smer(a);
        bs = smer(b);
        if (as > bs) {
            ax ^= bx;
            bx ^= ax;
            ax ^= bx;
            ay ^= by;
            by ^= ay;
            ay ^= by;
            as ^= bs;
            bs ^= as;
            as ^= bs;
        }
        if (
            ((as == 0) && (bs == 1) && (ay == by) && (ax < bx)) ||
            ((as == 2) && (bs == 3) && (ax == bx) && (ay < by)) ||
            ((as == 0) && (bs == 2) && (ax + ay == bx + by) && (ay > by)) ||
            ((as == 0) && (bs == 3) && (ax - ay == bx - by) && (ay < by)) ||
            ((as == 1) && (bs == 2) && (ax - ay == bx - by) && (ay > by)) ||
            ((as == 1) && (bs == 3) && (ax + ay == bx + by) && (ay < by))
        ) {} else {
            cout << "1\n2\n";
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...