本地通过,at 测评Re求助
  • 板块学术版
  • 楼主Light_az
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/14 14:40
  • 上次更新2024/8/14 16:05:33
查看原帖
本地通过,at 测评Re求助
654958
Light_az楼主2024/8/14 14:40

大样例全过,本地编译没问题,但 at 测评全Re,似乎是变量名的问题,注释 work 函数后全 Wa

#include <bits/stdc++.h>
#define N (int)(2e5+2)
#define ll long long
using namespace std;

int n, m, q, x[N], y[N], opt[N], p[N];
struct question {
    int id, A, B;
} ques[N];
bool tmp, change, digital_x, digital_y;
ll pls_tmp, pls_x, pls_y, ans_x[N], ans_y[N];

inline bool cmp(question i, question j) {
    return i.A < j.A;
}

inline ll work(int i) {
    if(opt[i] == 1) {
        change = !change;
        tmp = digital_x;
        digital_x = digital_y;
        digital_y = !tmp;
        pls_tmp = pls_x;
        pls_x = pls_y;
        pls_y = -pls_tmp;
    } else if(opt[i] == 2) {
        change = !change;
        tmp = digital_x;
        digital_x = !digital_y;
        digital_y = tmp;
        pls_tmp = pls_x;
        pls_x = -pls_y;
        pls_y = pls_tmp;
    } else if(opt[i] == 3) {
        digital_x = !digital_x;
        pls_x = -pls_x + (p[i]<<1);
    } else {
        digital_y = !digital_y;
        pls_y = -pls_y + (p[i]<<1);
    }
}

inline ll query_x(int i) {
    ll ret = change ? y[i]:x[i];
    ret = digital_x ? -ret:ret;
    return ret + pls_x;
}

inline ll query_y(int i) {
    ll ret = change ? x[i]:y[i];
    ret = digital_y ? -ret:ret;
    return ret + pls_y;
}

int main() {
    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        scanf("%d%d", x+i, y+i);
    scanf("%d", &m);
    for(int i=1; i<=m; i++) {
        scanf("%d", opt+i);
        if(opt[i]==3 || opt[i]==4)
            scanf("%d", p+i);
    }
    scanf("%d", &q);
    for(int i=1; i<=q; i++) {
    	ques[i].id = i;
        scanf("%d%d", &ques[i].A, &ques[i].B);
    }
    sort(ques+1, ques+1+q, cmp);
    for(int i=1, j=0; i<=q; i++) {
        while(j < ques[i].A)
            work(++j);
        ans_x[ques[i].id] = query_x(ques[i].B);
        ans_y[ques[i].id] = query_y(ques[i].B);
    }
    for(int i=1; i<=q; i++)
        printf("%lld %lld\n", ans_x[i], ans_y[i]);
    return 0;
}
2024/8/14 14:40
加载中...