I made an Eulerian path algorithm, what's the problem?
#include <cstdio>
#include <vector>
#include <iostream>
#include <list>
using namespace std;
int graph[1000][1000];  // 1<n<1000
int n; // 그래프는 n x n 
int i, j, degree[1000] = {},f=1;
list<int> lt1;
void oiler(int u) {
        for(int v=0;v<n;v++){
            while (graph[u][v]>0) {
                graph[u][v]--;
                graph[v][u]--;
                oiler(v);
                }
        }
        lt1.push_back(u);
 }
int main(void) {
    cin >> n;
    for (i = 0; i < n; i++) { 
        for (j = 0; j < n; j++) {
            cin >> graph[i][j];
            sum += graph[i][j]; 
        }
    }
    oiler(0);
    lt1.reverse();
    list<int>::iterator iter = lt1.begin();
    for(iter=lt1.begin(); iter!=lt1.end(); iter++) 
    { 
        printf("%d ", *iter+1);
    } 
}
input is
6 
0 1 0 1 1 1
1 0 1 1 1 0
0 1 0 1 0 0
1 1 1 0 1 0
1 1 0 1 0 1
1 0 0 0 1 0
output is
1 2 3 4 1 5 2 4 5 6 1 
it makes works and makes true output but not passed ... let me know if i missed anything
 
     
     
    