QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#602261#7029. Xu Xiake in Henan Provinceucup-team5071#Compile Error//C++202.6kb2024-09-30 22:16:072024-09-30 22:16:08

Judging History

你现在查看的是最新测评结果

  • [2024-09-30 22:16:08]
  • 评测
  • [2024-09-30 22:16:07]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve()
{
    int n,q;
    cin>>n>>q;
    ll ans=0;
    if(n==1){
        int z;cin>>z>>z;
        while(q--){
            char c;cin>>c;
            if(c=='!')cout<<"0\n";
            else if(c=='?'){
                int x;cin>>x;
                cout<<"1 1\n";
            }
            else {
                int x;cin>>x;
            }
        }
        return;
    }
    vector<int> x(n+1),y(n+1);
    vector<int> up(n+1),down(n+1),left(n+1),right(n+1);
    int lu=0,ld=0,ru=0,rd=0;
    int l1=1,l2=n,t1=1,t2=n;//actually bound
    int x1=1,x2=n,y1=1,y2=n;//virtual bound
    for(int i=1;i<=n;i++){
        cin>>x[i]>>y[i];
        if(x[i]==1&&y[i]==1)lu++;
        else if(x[i]==1&&y[i]==n)ru++;
        else if(x[i]==n&&y[i]==1)ld++;
        else if(x[i]==n&&y[i]==n)rd++;
        else if(x[i]==1)up[y[i]]++;
        else if(x[i]==n)down[y[i]]++;
        else if(y[i]==1)left[x[i]]++;
        else if(y[i]==n)right[x[i]]++;
    }
    auto actual_point = [&](int x,int y){
        return make_pair(x-x1+l1,y-y1+t1);
    };
    while(q--){
        char c;cin>>c;
        if(c=='!'){cout<<ans<<"\n";continue;}
        if(c=='?'){
            int i;cin>>i;
            int ax,ay;
            if(x[i]<=x1&&y[i]<=y1)tie(ax,ay)=actual_point(x1,y1);
            else if(x[i]<=x1&&y[i]>=y2)tie(ax,ay)=actual_point(x1,y2);
            else if(x[i]>=x2&&y[i]<=y1)tie(ax,ay)=actual_point(x2,y1);
            else if(x[i]>=x2&&y[i]>=y2)tie(ax,ay)=actual_point(x2,y2);
            else if(x[i]<=x1)tie(ax,ay)=actual_point(x1,y[i]);
            else if(x[i]>=x2)tie(ax,ay)=actual_point(x2,y[i]);
            else if(y[i]<=y1)tie(ax,ay)=actual_point(x[i],y1);
            else if(y[i]>=y2)tie(ax,ay)=actual_point(x[i],y2);
            else tie(ax,ay)=actual_point(x[i],y[i]);
            cout<<ax<<" "<<ay<<"\n";
            continue;
        }
        int k;cin>>k;
        {//move the actual bound to the map bound
            int d=0;
            if(c=='L'){d=min(k,t1-1);k-=d;t1-=d;t2-=d;}
            if(c=='R'){d=min(k,n-t2);k-=d;t1+=d;t2+=d;}
            if(c=='U'){d=min(k,l1-1);k-=d;l1-=d;l1-=d;}
            if(c=='D'){d=min(k,n-l2);k-=d;l2+=d;l2+=d;}
        }
        if((c=='L'||c=='R')&&y1==y2){//just line move
            if(c=='L')x1-=L
        }
        if((c=='U'||c=='D')&&x1==x2){//just line move
            continue;
        }
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;cin>>T;while(T--)solve();
    return 0;
}

Details

answer.code: In function ‘void solve()’:
answer.code:70:27: error: ‘L’ was not declared in this scope
   70 |             if(c=='L')x1-=L
      |                           ^