降智好题
前面随机部分按照题意模拟,然后字典序贪心,也就是记录每个值的位置从1~nm依次看能不能取,能取的话更新行的取值范围(它上面的行一定取的列小于等于这个数取的列,下面行大于等于)#include#include using namespace std;const int N=5005;int n,m,q,len,p[N*N],id[N*N],l[N],r[N];long long x,a,b,c,d;int read(){ int r=0,f=1; char p=getchar(); while(p>'9'||p<'0') { if(p=='-') f=-1; p=getchar(); } while(p>='0'&&p<='9') { r=r*10+p-48; p=getchar(); } return r*f;}int main(){ x=read(),a=read(),b=read(),c=read(),d=read(),n=read(),m=read(),q=read(),len=n*m; for(int i=0;i =id[i]/m) { printf("%d ",i+1); for(int j=id[i]%m+1;j