题解 P1740 【Diamond A&B(1)】

这题有毒。。。

貌似就我一个是用C++写过的……

楼下已经说过题目什么意思,我这里就来说一下怎么实现

具体请看代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int n;
string a[1777];
int main(void){
cin>>n;
cout<<n<<endl;
for (int i=0;i<=n*2;i++){
string s;
getline(cin,s);
a[i]=" ";
a[i]+=s;
}//由于string读入时自动0下标,所以我要强制转成1下标
for (int i=1;i<=2*n+1;i++,puts("")){
int ps=n+!(i&1),o=1+(i-1)/2,p=n+1-i/2;//ps是输出个数,o是起始行,p是起始列
for (int j=1;j<=ps;j++)putchar(a[o++][p++]==' '?'0':'1');//模拟过去
}
}