1 条题解

  • 0
    @ 2026-3-8 19:30:31
    #define N 200009
    #include<bits/stdc++.h>
    using namespace std;
    int h,w,x,y,n,q;
    map<int,set<int>> r,c;
    set<int>::iterator it;
    int main(){
    	cin>>h>>w>>x>>y>>n;
    	for(int a,b,i=1;i<=n;i++)cin>>a>>b,r[a].insert(b),c[b].insert(a);
    	cin>>q;
    	for(int t,i=1;i<=q;i++){
    		char dir;cin>>dir>>t;
    		if(dir=='L')r[x].insert(0),r[x].insert(w+1),y=max(y-t,(*(--r[x].upper_bound(y)))+1);
    		if(dir=='R')r[x].insert(0),r[x].insert(w+1),y=min(y+t,(*(r[x].upper_bound(y)))-1);
    		if(dir=='U')c[y].insert(0),c[y].insert(h+1),x=max(x-t,(*(--c[y].upper_bound(x)))+1);
    		if(dir=='D')c[y].insert(0),c[y].insert(h+1),x=min(x+t,(*(c[y].upper_bound(x)))-1);
    		cout<<x<<" "<<y<<endl;
    	}
    	return 0;
    }
    
    
    • 1

    信息

    ID
    7761
    时间
    3000ms
    内存
    1024MiB
    难度
    9
    标签
    递交数
    11
    已通过
    3
    上传者