QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#173165 | #7178. Bishops | ucup-team298# | WA | 2ms | 5956kb | C++14 | 1.3kb | 2023-09-09 22:14:34 | 2023-09-09 22:14:34 |
Judging History
answer
#include<bits/stdc++.h>
#define re register
using namespace std;
inline int read(){
re int t=0;re char v=getchar();
while(v<'0')v=getchar();
while(v>='0')t=(t<<3)+(t<<1)+v-48,v=getchar();
return t;
}
const int M=998244353;
inline void add(re int &x,re int y){(x+=y)>=M?x-=M:x;}
inline int Mod(re int x){return x>=M?x-M:x;}
inline int ksm(re int x,re int y){
re int s=1;
while(y){
if(y&1)s=1ll*s*x%M;
x=1ll*x*x%M,y>>=1;
}
return s;
}
int t,n,m,a[1000002],ans,R[1000002],stk[1000002],tp,lst;
char s[1000002];
vector<int>A,B;
int main(){
n=read(),m=read();
if(n>m)swap(n,m),ans=1;
lst=0;
for(re int i=1;i+n<=m;i+=n){
lst=i;
for(re int j=1;j<=n;++j)A.push_back(j),B.push_back(i);
}
for(re int j=1;j<=n;++j)A.push_back(j),B.push_back(m);
if(lst)lst=lst+m+1>>1;
else lst=1;
re int dlt=m-lst;
if(m%n==0){
for(re int i=1;i<=n;++i){
if(i>dlt)s[i-dlt]=1;
if(i+dlt<=n)s[i+dlt]=1;
}
for(re int i=1;i<=n;++i)if(!s[i])A.push_back(i),B.push_back(lst),A.push_back(i),B.push_back(lst-1),++i;
}
else if(dlt){
for(re int i=1;i<=n;++i){
if(i>dlt)s[i-dlt]=1;
if(i+dlt<=n)s[i+dlt]=1;
}
for(re int i=1;i<=n;++i)if(!s[i])A.push_back(i),B.push_back(lst);
}
printf("%u\n",A.size());
for(re int i=0;i<A.size();++i){
if(ans)swap(A[i],B[i]);
printf("%d %d\n",A[i],B[i]);
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 5956kb
input:
2 5
output:
6 1 1 2 1 1 3 2 3 1 5 2 5
result:
ok n: 2, m: 5, bishops: 6
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 5892kb
input:
5 5
output:
9 1 5 2 5 3 5 4 5 5 5 2 1 2 0 4 1 4 0
result:
wrong answer Integer parameter [name=y] equals to 0, violates the range [1, 5]