פתרון אפשרי
בוחרים 3 מספרים באופן אקראי (לא תלוי ב-N) 1. לכל אחד משלושת המספרים: 1.1. עוברים על העמודה שלו, ופוסלים כל שורה שהתא המתאים שלה אינו 0, למעט כמובן השורה שמספרה כמספר העמודה. 1.2. עוברים על השורה שלו ועושים את אותו הדבר לגבי העמודות, כמובן שהפעם בודקים אם התא אינו 1. 4. כעת יש לנו רשימת עמודות תקינות, ורשימת שורות תקינות. נמזג את שתי הרשימות, כי שורת אפסים תענה על תנאי השאלה רק אם השורה שלה תקינה וגם העמודה שלה תקינה. כל מעבר על שורה/עמודה הוא N, ובסה"כ 6N. שלב ניקוי הרשימות גם הוא נעשה ב-N, ולכן בסה"כ N צעדים. מספר השורות שישרדו את התהליך הזה יהיה קטן, ובסה"כ התהליך יהיה יעיל יותר מזה שהציע המנגו. אפשר גם להגדיל (מראש כמובן) את מספר השורות/עמודות שנבדקו - כל עוד זה מספר קבוע, התהליך יהיה ליניארי. אגב, לא הצלחתי לקשר את זה לדרגות כניסה ויציאה, מכיוון שלא אמרת שהמטריצה היא סימטרית. אם יש N קודקודים בגרף, והמטריצה היא למעשה מטריצת קשתות, היא צריכה להיות סימטרית. אם היא לא סימטרית אני לא רואה קשר לדרגות כניסה ויציאה. אם היא כן צריכה להיות סימטרית, זה משנה את השאלה.