#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
long long int n,k,y,x;
while(cin>>n){
long long int arr[n][n]={0};
cin>>k;
while(k--){
cin>>y>>x;
if(arr[y][x]!=-1){
arr[y][x]=-1;
for(int i=y-1;i<=y+1;i++){
for(int j=x-1;j<=x+1;j++){
if(i>=0 and j>=0 and arr[i][j]!=-1 and i<=n-1 and j<=n-1)
arr[i][j]++;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(arr[j][i]==-1)
cout<<'x';
else cout<<arr[j][i];
}
cout<<"\n";
}
}
return 0;
}
#include
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
long long int n,k,y,x;
while(cin>>n){
long long int arr[n][n]={0};
cin>>k;
while(k--){
cin>>y>>x;
if(arr[y][x]!=-1){
arr[y][x]=-1;
for(int i=y-1;i<=y+1;i++){
for(int j=x-1;j<=x+1;j++){
if(i>=0 and j>=0 and arr[i][j]!=-1 and i<=n-1 and j<=n-1)
arr[i][j]++;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(arr[j][i]==-1)
cout<<'x';
else cout<<arr[j][i];
}
cout<<"\n";
}
}
return 0;
}
#0: 100% WA (line:23)
您的答案為: x2x33x2000 正確答案為: 02x33x2000
測範例測資ok!
不知哪裡錯了?
查了好久,終於找到為什麼錯了
簡單來說,似乎並不能用long long int arr[n][n]={0}把陣列所有元素設成0,因為你的陣列是variable length array,要用memset才行。
參考資料:https://stackoverflow.com/questions/17332360/initializing-variable-length-array
#include
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
long long int n,k,y,x;
while(cin>>n){
long long int arr[n][n]={0};
cin>>k;
while(k--){
cin>>y>>x;
if(arr[y][x]!=-1){
arr[y][x]=-1;
for(int i=y-1;i<=y+1;i++){
for(int j=x-1;j<=x+1;j++){
if(i>=0 and j>=0 and arr[i][j]!=-1 and i<=n-1 and j<=n-1)
arr[i][j]++;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(arr[j][i]==-1)
cout<<'x';
else cout<<arr[j][i];
}
cout<<"\n";
}
}
return 0;
}
#0: 100% WA (line:23)
您的答案為: x2x33x2000 正確答案為: 02x33x2000
測範例測資ok!
不知哪裡錯了?
查了好久,終於找到為什麼錯了簡單來說,似乎並不能用long long int arr[n][n]={0}把陣列所有元素設成0,因為你的陣列是variable length array,要用memset才行。
參考資料:https://stackoverflow.com/questions/17332360/initializing-variable-length-array
謝謝genius!!!!!!!!!!!!!!!!!
已AC!