a746. 画蛇添足 5/16/2025

解法一

✅ 完整代碼

評分結果(參考) : AC (45ms, 736KB)

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false); 
    cin.tie(nullptr);
    
    int n, m;
    while(cin >> n >> m){
        vector<vector<char>> v(n+1, vector<char>(n+1, ' '));
        
        int prevX = -1, prevY = -1;
        for(int i=0; i<m; i++){
            int x, y;
            cin >> x >> y;
            
            if(x == prevX){
                int start = min(y, prevY);
                int end = max(y, prevY);
                for(int k=start; k<=end; k++) v[x][k] = '*';        
            }
            else if(y == prevY){
                int start = min(x, prevX);
                int end = max(x, prevX);
                for(int k=start; k<=end; k++) v[k][y] = '*';
            }
            
            prevX = x;
            prevY = y;
        }
        
        for(int i=1; i<=n+2; i++) cout << "-";
        cout << "\n";
        
        for(int i=1; i<=n; i++){
            cout << "|";
            for(int j=1; j<=n; j++){
                cout << v[i][j];
            }
            cout << "|\n";
        }
        
        for(int i=1; i<=n+2; i++) cout << "-";
        cout << "\n";
    }
    
    return 0;
}