Submission #963536

# Submission time Handle Problem Language Result Execution time Memory
963536 2024-04-15T09:31:18 Z ttttttttttttth Zvijezda (COCI19_zvijezda) C++17
20 / 110
1000 ms 4684 KB
// Author: Ivan Teo
// Created: Mon Apr 15 14:41:22 2024

#define TASKNAME "tomau"
#include <bits/stdc++.h>
using namespace std;

#define fore(i, a, b) for (int i = (a); i <= (b); i++)
#define int long long
using vi = vector<int>;
using ii = pair<int, int>;
#define pb emplace_back
#define fi first
#define se second
#define sz(v) ((int)v.size())
#define all(v) v.begin() + 1, v.end()
#define alll(v) v.begin(), v.end()
#define db(x) cerr << "[" << #x << " = " << x << "]"
#define el cerr << "\n=============================\n"
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
int Rand(int l, int r)
{
    assert(l <= r);
    return uniform_int_distribution<int> (l, r)(rng);
}

__int128 cross(int x0, int y0, int x1, int y1, int x2, int y2)
{
    return (__int128) (x1 - x0) * (y2 - y0) - (__int128) (x2 - x0) * (y1 - y0);
}
const int maxn = 2e5 + 5;
ii a[maxn];
int n, q, t;

void solve()
{
    cin >> t >> n;
    fore(i, 0, n - 1) cin >> a[i].fi >> a[i].se;
    cin >> q;
    int p = 0;
    while (q--)
    {
        int x, y;
        cin >> x >> y;
        if (t) x ^= p * p * p, y ^= p * p * p;
        int flag = 0;
        fore(i, 0, n - 1)
        {
            __int128 dir = cross(x, y, a[i].fi, a[i].se, a[(i + 1) % n].fi, a[(i + 1) % n].se);
            if (dir < 0) flag++;
            else if (dir == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag < n / 2) cout << "DA";
        else cout << "NE";
        cout << '\n';
    }
}

signed main()
{
    cin.tie(0)->sync_with_stdio(0);
    if (fopen("in", "r"))
        freopen("in", "r", stdin);
    if (fopen(TASKNAME ".inp", "r"))
        freopen(TASKNAME ".inp", "r", stdin),
                freopen(TASKNAME ".out", "w", stdout);
    int tc = 1;
    // cin >> tc;
    while (tc--)
        solve();
    return 0;
}

Compilation message

zvijezda.cpp: In function 'int main()':
zvijezda.cpp:67:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   67 |         freopen("in", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~
zvijezda.cpp:69:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   69 |         freopen(TASKNAME ".inp", "r", stdin),
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
zvijezda.cpp:70:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |                 freopen(TASKNAME ".out", "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 2 ms 480 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 10 ms 348 KB Output is correct
6 Correct 14 ms 344 KB Output is correct
7 Correct 16 ms 604 KB Output is correct
8 Correct 20 ms 624 KB Output is correct
9 Correct 20 ms 604 KB Output is correct
10 Correct 20 ms 600 KB Output is correct
11 Correct 20 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 2 ms 480 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 10 ms 348 KB Output is correct
6 Correct 14 ms 344 KB Output is correct
7 Correct 16 ms 604 KB Output is correct
8 Correct 20 ms 624 KB Output is correct
9 Correct 20 ms 604 KB Output is correct
10 Correct 20 ms 600 KB Output is correct
11 Correct 20 ms 604 KB Output is correct
12 Correct 100 ms 4440 KB Output is correct
13 Correct 724 ms 4684 KB Output is correct
14 Execution timed out 1036 ms 3712 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1057 ms 2692 KB Time limit exceeded
2 Halted 0 ms 0 KB -