void dfs(int r, int c) { int i = 0, countout = 0; if( n_solutions > 1 ) return; if( (r<0) || (r>=n) || (c<0) || (c>=m) ) return; if( '2' == warehouse[r][c] ) { n_solutions++; return; } if( '#' == warehouse[r][c] ) return; if( visited[r][c] ) return; visited[r][c] = 1; for(i = 0;i < 4;++i) { if( valied(r+directions[i][0],c+directions[i][1]) ) countout++; dfs(r+directions[i][0], c+directions[i][1]); if ( n_solutions > 1 ) return; } if( (countout > 2) && ('1' != warehouse[r][c] || '2' != warehouse[r][c]) ) withstop = 1; }
int returnDays(int d1, int d2, int m1, int m2, int y1, int y2) { if (valied(d1, m1, y1) && valied(d2, m2, y2)){ if (m1 == m2 && y1 == y2) return returndiff(d1, d2); int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (m1 != m2) { if (y1 == y2){ return returndiff(d1, d2) + returnMonthDiff(month, m1, m2); } else{ return returndiff(d1, d2) + returnMonthDiff(month, m1, m2) + returnYearDiff(y1, y2); } } if (y1 != y2) { if (m1 == m2) return returndiff(d1, d2) + returnYearDiff(y1, y2); } } }