提出 #66807263


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

#include <atcoder/all>
using namespace atcoder;

using ll = long long;
using mint = modint998244353;

ll dot(vector<ll> &A, vector<ll> &B) {
    ll ret = 0;
    int N = A.size();
    assert(A.size() == B.size());
    for(int i = 0; i < N; i++) ret += A[i] * B[i];
    return ret;
}

void solve() {
    int N;
    cin >> N;
    vector<ll> A(N), B(N);
    for(ll &x : A) cin >> x;
    for(ll &x : B) cin >> x;
    vector<array<ll, 3>> v(N);
    for(int i = 0; i < N; i++) {
        v[i][0] = A[i];
        v[i][1] = B[i];
        v[i][2] = i;
    }
    sort(v.begin(), v.end(), [&](auto &x, auto &y) {
        return (x[0] == y[0] ? x[1] > y[1] : x[0] < y[0]);
    });
    { // A[l] <= A[r], B[l] > B[r] を探す
        ll mx = -1, argmx = -1;
        for(int i = 0; i < N; i++) {
            if(v[i][1] < mx) {
                ll l = v[argmx][2];
                ll r = v[i][2];
                vector<ll> X(N);
                X[l] = - B[r] - 1;
                X[r] = B[l] + 1;
                assert(dot(A, X) > 0);
                assert(dot(B, X) < 0);
                cout << "Yes" << "\n";
                for(int i = 0; i < N; i++) {
                    cout << X[i] << " \n"[i == N - 1];
                }
                return;
            }else if(mx < v[i][1]) {
                mx = v[i][1];
                argmx = i;
            }
        }
    }
    sort(v.begin(), v.end(), [&](auto &x, auto &y) {
        return (x[1] == y[1] ? x[0] > y[0] : x[1] < y[1]);
    });
    { // B[l] <= B[r], A[l] > A[r] を探す
        ll mx = -1, argmx = -1;
        for(int i = 0; i < N; i++) {
            if(v[i][0] < mx) {
                ll l = v[argmx][2];
                ll r = v[i][2];
                vector<ll> X(N);
                X[l] = A[r] + 1;
                X[r] = - A[l] - 1;
                assert(dot(A, X) > 0);
                assert(dot(B, X) < 0);
                cout << "Yes" << "\n";
                for(int i = 0; i < N; i++) {
                    cout << X[i] << " \n"[i == N - 1];
                }
                return;
            }else if(mx < v[i][0]) {
                mx = v[i][0];
                argmx = i;
            }
        }
    }
    cout << "No" << "\n";
}

int main() {
    int T;
    cin >> T;
    while(T--) solve();
}

提出情報

提出日時
問題 A - Dot Product
ユーザ ripity
言語 C++ 20 (gcc 12.2)
得点 0
コード長 2406 Byte
結果 WA
実行時間 299 ms
メモリ 10492 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 500
結果
AC × 1
AC × 10
WA × 35
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_handmade_00.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 01_handmade_04.txt, 01_handmade_05.txt, 01_handmade_06.txt, 01_handmade_07.txt, 01_handmade_08.txt, 01_handmade_09.txt, 01_handmade_10.txt, 01_handmade_11.txt, 01_handmade_12.txt, 01_handmade_13.txt, 01_handmade_14.txt, 01_handmade_15.txt, 01_handmade_16.txt, 01_handmade_17.txt, 01_handmade_18.txt, 01_handmade_19.txt, 01_handmade_20.txt, 01_handmade_21.txt, 01_handmade_22.txt, 01_handmade_23.txt, 01_handmade_24.txt, 01_handmade_25.txt, 02_No_00.txt, 02_No_01.txt, 02_No_02.txt, 02_No_03.txt, 03_Yes_00.txt, 03_Yes_01.txt, 03_Yes_02.txt, 03_Yes_03.txt, 03_Yes_04.txt, 03_Yes_05.txt, 03_Yes_06.txt, 03_Yes_07.txt, 04_YesNo_00.txt, 04_YesNo_01.txt, 04_YesNo_02.txt, 04_YesNo_03.txt, 04_YesNo_04.txt, 04_YesNo_05.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3512 KiB
01_handmade_00.txt WA 2 ms 3712 KiB
01_handmade_01.txt WA 171 ms 3516 KiB
01_handmade_02.txt WA 171 ms 3552 KiB
01_handmade_03.txt WA 171 ms 3616 KiB
01_handmade_04.txt WA 177 ms 3552 KiB
01_handmade_05.txt WA 170 ms 3524 KiB
01_handmade_06.txt WA 173 ms 3532 KiB
01_handmade_07.txt WA 172 ms 3620 KiB
01_handmade_08.txt WA 171 ms 3480 KiB
01_handmade_09.txt WA 173 ms 3708 KiB
01_handmade_10.txt WA 170 ms 3584 KiB
01_handmade_11.txt WA 168 ms 3412 KiB
01_handmade_12.txt WA 169 ms 3528 KiB
01_handmade_13.txt WA 170 ms 3524 KiB
01_handmade_14.txt WA 189 ms 3620 KiB
01_handmade_15.txt WA 188 ms 3516 KiB
01_handmade_16.txt WA 188 ms 3616 KiB
01_handmade_17.txt WA 188 ms 3416 KiB
01_handmade_18.txt WA 174 ms 3712 KiB
01_handmade_19.txt WA 192 ms 3480 KiB
01_handmade_20.txt WA 171 ms 3512 KiB
01_handmade_21.txt WA 168 ms 3520 KiB
01_handmade_22.txt WA 134 ms 3492 KiB
01_handmade_23.txt WA 128 ms 3552 KiB
01_handmade_24.txt WA 136 ms 3540 KiB
01_handmade_25.txt AC 79 ms 3524 KiB
02_No_00.txt AC 299 ms 3708 KiB
02_No_01.txt AC 185 ms 3552 KiB
02_No_02.txt AC 78 ms 7600 KiB
02_No_03.txt AC 76 ms 6424 KiB
03_Yes_00.txt WA 193 ms 3520 KiB
03_Yes_01.txt WA 193 ms 3520 KiB
03_Yes_02.txt AC 88 ms 9168 KiB
03_Yes_03.txt AC 88 ms 7960 KiB
03_Yes_04.txt AC 82 ms 10492 KiB
03_Yes_05.txt AC 82 ms 10196 KiB
03_Yes_06.txt WA 135 ms 3544 KiB
03_Yes_07.txt WA 113 ms 3620 KiB
04_YesNo_00.txt WA 135 ms 3528 KiB
04_YesNo_01.txt WA 113 ms 3552 KiB
04_YesNo_02.txt WA 135 ms 3528 KiB
04_YesNo_03.txt WA 113 ms 3540 KiB
04_YesNo_04.txt WA 135 ms 3540 KiB
04_YesNo_05.txt WA 112 ms 3556 KiB